- Katılım
- 19 Eylül 2006
- Mesajlar
- 67
- Excel Vers. ve Dili
- office 2007 tr
Excel sorgu sihirbazı vasıtası ile SQL veri tabanından bilgi sorgulaması yaptım ve bunu makro olarak keydettim
Yapmaya çalıştığım ama yapamadığım bir şey var.
SQL sorgusunda belirli bir sayıyı sorgulayabiliyorum bu makroyla ancak istediğim şey sorgulamamın aşağıda işaretli olan kısmının değişken olması. Çeşitli değişken tanımlamaları yaptım ancak sorgu da yazılmasını istediğim değer yerine her zaman değişkenin adı geldi.
Yani Sayfa1 A1 hücresine bir değer yazdığımda ve sorguyu çalıştırdığımda aşağıda kırmızı ile işaretli yerde sorgu kriteri olarak A1'e yazdığım değer sorgulansın istiyorum.
Sorguyu bu şekilde çalıştırabilmem için nasıl bir yol izlemem gerekir bilgisi olan varsa ve paylaşabilirse sevinirim.
Kodlar:
Sheets("sayfa3").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=DISCILIK;UID=MERCEK;;SERVER=EFES;", Destination:=Sheets("Sayfa3"). _
Range("A2"))
.CommandText = Array( _
"SELECT VSATONAYBELGELERI.BUTCE_YILI, VSATONAYBELGELERI.VPROJENO, VSATONAYBELGELERI.ONAY_TARIHI, VSATONAYBELGELERI.ILAN_SEKLI, VSATONAYBELGELERI.RUMUZ, VSATONAYBELGELERI.DIGER_ACK" & Chr(13) & "" & Chr(10) & "FROM OPUS.VSATONAYBE" _
, _
"LGELERI VSATONAYBELGELERI" & Chr(13) & "" & Chr(10) & "WHERE (VSATONAYBELGELERI.BUTCE_YILI='2009') AND (VSATONAYBELGELERI.VPROJENO='1100')" & Chr(13) & "" & Chr(10) & "ORDER BY VSATONAYBELGELERI.VPROJENO" _
)
.Name = "DISCILIK kaynağından sorgula_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Sheets("Sayfa3").Select
End Sub
Yapmaya çalıştığım ama yapamadığım bir şey var.
SQL sorgusunda belirli bir sayıyı sorgulayabiliyorum bu makroyla ancak istediğim şey sorgulamamın aşağıda işaretli olan kısmının değişken olması. Çeşitli değişken tanımlamaları yaptım ancak sorgu da yazılmasını istediğim değer yerine her zaman değişkenin adı geldi.
Yani Sayfa1 A1 hücresine bir değer yazdığımda ve sorguyu çalıştırdığımda aşağıda kırmızı ile işaretli yerde sorgu kriteri olarak A1'e yazdığım değer sorgulansın istiyorum.
Sorguyu bu şekilde çalıştırabilmem için nasıl bir yol izlemem gerekir bilgisi olan varsa ve paylaşabilirse sevinirim.
Kodlar:
Sheets("sayfa3").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=DISCILIK;UID=MERCEK;;SERVER=EFES;", Destination:=Sheets("Sayfa3"). _
Range("A2"))
.CommandText = Array( _
"SELECT VSATONAYBELGELERI.BUTCE_YILI, VSATONAYBELGELERI.VPROJENO, VSATONAYBELGELERI.ONAY_TARIHI, VSATONAYBELGELERI.ILAN_SEKLI, VSATONAYBELGELERI.RUMUZ, VSATONAYBELGELERI.DIGER_ACK" & Chr(13) & "" & Chr(10) & "FROM OPUS.VSATONAYBE" _
, _
"LGELERI VSATONAYBELGELERI" & Chr(13) & "" & Chr(10) & "WHERE (VSATONAYBELGELERI.BUTCE_YILI='2009') AND (VSATONAYBELGELERI.VPROJENO='1100')" & Chr(13) & "" & Chr(10) & "ORDER BY VSATONAYBELGELERI.VPROJENO" _
)
.Name = "DISCILIK kaynağından sorgula_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Sheets("Sayfa3").Select
End Sub
