excel veri alırken değişken tanımlama nasıl yapılır???

Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
merhaba
Excelde Sorgu düzenle kısmına makro veya başka bir yolla değişken tanımlayabilirmiyiz.

ekte altı çizili olan tarih kısmını bir değişkene nasıl atabilirim.X değişkeni başlangıç tarihi Y değişkenide Bitiş tarihi olmasını istiyorum. nasıl bir yol izlemem gerekir.

örnek kod
CONVERT(DATETIME,
'X', 102) AND CONVERT(DATETIME, 'Y', 102)) AND (LG_002_02_STLINE.TRCODE = 7 OR
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Şöyle deneyin.

Kod:
Private Function ConvertA(Tarih) As String
    ConvertA = Format(Tarih, "yyyy" & "-" & "mm" & "-" & "dd")
End Function

....CONVERT(DATETIME, 
                      [COLOR=Red]'" & ConvertA(X) & "'[/COLOR], 102) AND CONVERT(DATETIME, [COLOR=red]'" & ConvertA(Y) & "'[/COLOR], 102)) AND (LG_002_02_STLINE.TRCODE = 7 OR
 
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
biraz daha açayım benim yapmak istediğimi.
değişken derken şunu kastediyorum
bi text box veya excelde belirlediğim tabloya ben tarihi girince benim sql sorgusu bölümümdeki atadıgım değişken beni o text box veya exceldeki belirlediğim tabloya girdiğim tarihe göre rapor alsın bilmem anlatabildimmi ifade yeteneğim pek iyi değil kusura bakmayın
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Sorunuzu doğru ifade etmişsiniz.

X = [a1].Value ve Y = [a2].Value

ya da,

X = Textbox1 ve Y = Textbox2

Kolay gelsin..
 
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
tşk bunun üzerinde biraz çalışayım ben
 
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
fazla detaya girmeden ufak bi çalışma yaptım fakat istediğim sonucu alamadım.

m1 hücresini değiken alan olarak tanımladım

Sub fiilistok()
x = [M1].Value


End Sub

bunu msgbox ile çalıştırdıgım zaman m1 hücresine yazdıgım rakam ekran gösteriliyor.
fakat

ben bunu
ekteki resimdeki gibi
sql sorgusu girdiğimiz "ole db sorgusu düzenle" de

LG_002_PRCLIST.CARDREF INNER JOIN LG_002_02_GNTOTST ON LG_002_PRCLIST.CARDREF = LG_002_02_GNTOTST.STOCKREF WHERE (LG_002_ITMCLSAS.PARENTREF = 'X') AND (LG_002_PRCLIST.PRIORITY = '0') AND (LG_002_PRCLIST.PTYPE = '2') AND (LG_002_02_GNTOTST.INVENNO = '1') AND (LG_002_02_GNTOTST.ONHAND > 0)

sql komutunu yazıyorum ve LG_002_ITMCLSAS.PARENTREF= '68673' kısmındaki rakam yerine değişkeni ben burda kullanmak istiyorum.

LG_002_ITMCLSAS.PARENTREF= 'X' and ....(kod aynen devam ediyor)
şeklinde yazdıgım zaman aldıgım hata

"syntax error converting the varchar value 'X' to a column of data type int"

ve

LG_002_ITMCLSAS.PARENTREF= '&(X)&' .....

şeklinde yazıyorum yine aynı hatayı alıyorum...

sizin anlayacagınız benim tanımladıgım değişkeni sql düzenleme ekranında kullanınca çalıştıramıyorum
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
LG_002_ITMCLSAS.PARENTREF= '&(X)&' .....
Sorguda, bu ifadeyi kullanın. Ancak, x tarih değişkenine değer atarken, aşağıdaki gibi yapın

Kod:
    Dim x As Date
    If IsDate([M1]) Then
          x = Replace([M1], ".", "/")
[COLOR=darkgreen]   'veya x = CVDate([M1])[/COLOR]
    Else
         MsgBox "Tarih Hatalı girilmiş",,"UYARI"
         Exit Sub
    End If
 
Son düzenleme:
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
hocam şu an problemim tarih olayı değil benim sıkıntım atanılan değişkeni sql komutu yazdıgım kısımda kullanamıyorum.ve son verdiğim örnekteki değişkenim tarih değil sadece rakam.yani ürün agacının referens kodu gibi bi kod
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Anladım... O zaman şöyle bir durum olduğunu tahmin ediyorum.

SQL'de LG_002_ITMCLSAS table'ındaki PARENTREF alanının tipi, Text (metin) veya Date(tarih) karakterli değildir. Muhtemelen, Integer (daha doğrusu sayısal diyelim) tipli bir alan olduğunu tahmin ediyorum.

Sayısal tipli bir alana sorgu gönderirken; değer, tek tırnak (') işareti içine alınmaz. Alınırsa, sizdekine benzer bir hata karşınıza çıkar. Tırnakları kaldırıp,

"LG_002_ITMCLSAS.PARENTREF=" & X & " .....

şeklinde deneyiniz.
 
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
"LG_002_ITMCLSAS.PARENTREF=" & X & " .....
ŞEKLİNDE YAZDIM
invaild column name '&x&' şeklinde bir hata aldım.

"LG_002_ITMCLSAS.PARENTREF= & X & .....
şeklinde yazdıgım zamanda
line 1 : incorreckt syntax near '&'. şeklinde hata alıyorum.

Ayrıca buradaki parentref alanı(veri tabanı ms sql 2000) int.
 
Katılım
10 Şubat 2008
Mesajlar
11
Excel Vers. ve Dili
xp
o kadar araştırmalarıma ragmen hala bulamadım bir çözüm
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Epey Zaman olmuş başarmış olabilirisiniz belkide . Ben yinede çalışmlarımda kullandığım şekli sizinlede paylaşayım.

Gerci siz sanırım LKS2 ile çalışıyorsunuz. Ben daha çok netsiste raporlarmalar yapıyorum :).

İlk Önce şunu söylemek isterim.
Ben değişkenleri text'lerden alsamda alır gib gösteririm . Yani text'in ControlSource özelliğini ad verdiğim hüçreye atarım. Sorguda hüçreden çağırırım. İkiside aynı iş gerci siz kolayınıza nasıl geliyorsa o şekilde yapın.
Fakat text'i ControlSource' özelliğini kullanmak daha önce son yazılıanın tekrar geri orda kalmasını saglar.
Değişkenlerinizi çağırdığınız hüçrelere ad verin böylelikle hücre ekleme cıkartmalarında hüçreniz etkilenmez. ;). Bu bazen öenmli ola bilir.

Tarih kısıtlamalırnda zamanında bende 3 gün uğraştığım için vermek istedim. Gerci LKS2 'de tarihleri sutun sutun alıyorlar zannedersem. :).

tarih1 = Range("Sayfa1_TarihBas")
tarih1 = format(tarih,"yyyy-mm-dd")

tarih2 = format(Range("Sayfa1_TarihBit"),"yyyy-mm-dd")

M1 Hücresine Ad verdiğinizde Range("M1") yerine Range("Sayfa1_Turu") olarak cağırırsınız. M1 Hüçresini kesip başka bir yere kopyalandığında veya araya satir sutun giridiğinde çalışmanızın etkilenmemesini sağlarsınız. Ben bunu öğrenmeden önce az cekmedim. :)..

turu = Range("Sayfa1_Turu")

Kod:
FROM LG_002_PRCLIST.CARDREF 
		INNER JOIN LG_002_02_GNTOTST ON LG_002_PRCLIST.CARDREF = LG_002_02_GNTOTST.STOCKREF 
WHERE (LG_002_ITMCLSAS.PARENTREF = '[color=red]" & turu & "[/color]') 
AND (LG_002_PRCLIST.PRIORITY = '0') 
AND (LG_002_PRCLIST.PTYPE = '2') 
AND (LG_002_02_GNTOTST.INVENNO = '1') 
AND (LG_002_02_GNTOTST.ONHAND > 0)
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
merhaba
Excelde Sorgu düzenle kısmına makro veya başka bir yolla değişken tanımlayabilirmiyiz.
Yanlız Tekrar okuduğumda bu şekilde soruyu sorduğunuzu fark ettim. QERY düzenle kısmında bunun olacağını düşünmüyorum. Benim ve sanırım arkadaşların yazdığı kodlar VBA da yazılınca çalışır.

Fakat QUERY deki sorgu yerine kodla yeni sorgu ata bilirsiniz.Yeni sorgu yani yeni cümlemizde değişkenleri kullanırsınız.

Anlatabildim sanırım.

Nasıl bunu yapacaksınız VBA bunu. Bunu excel kendisini yazmasını sağlayalım. Bir makro kaydet deyin. Ve QURY girip cimlede değişiklik yapıp tekrar excelle gönder deyin yani yeni cümleyle çalışıtırın. Sonra Excel VBA 'da modullere gidin
sizin yerinize orada cümleninizn yazıldığını göreceksiniz.

Artık gerisi size kalmış size önerdiğimiz kodları oarada deneyin.

Kolay gelsin.
 
Üst