Tablo Adı Sorgulama

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
196
Excel Vers. ve Dili
Excel 2021
Kod:
Sorgu = "Select [STOK_KODU],[URUN_KODU],[URUN_ADI],[URUN_GRUBU] from [URUN_DOSYALARI] where [STOK_KODU] ='" & ListBox1.LIST(ListBox1.ListIndex, 0) & "' union all " & _
"Select DISTINCT ST.[STOK_KODU],ST.[IS_KODU],IE.[FIRMA_ADI],IE.[IS_KODU] from [SATINALMA_LISTE] as ST left join [" & qfx & "] as IE on ST.[IS_KODU]=IE.[IS_KODU]" & _
"where ST.[STOK_KODU] ='A.H.1001.1127'"
RS.Open Sorgu, con, 1, 3

    Do Until RS.EOF
    With ListBox1
    .AddItem
    .LIST(i, 0) = RS.Fields(1).Value
    .LIST(i, 1) = RS.Fields(2).Value
    .LIST(i, 2) = "Tablo Adı"
    End With
    RS.movenext
    Loop
Yukarıdaki Sorguda .LIST(i, 2) = alanına veriler hangi tablodan geliyorsa o tablonun adını yazdırmak istiyorum.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
11,274
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Libre Office 7.3.0.3
+
Google Sheets
+
Apache Open Office 4.1.11
+
JScript
C#:
     .List(i, 2) = Replace(Replace(Trim(Split(Split(Sorgu, " where")(0), "from")(1)), "[", ""), "]", "")
.
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
196
Excel Vers. ve Dili
Excel 2021
236216

Haluk Hocam çözüm çok Şık olmuş. Teşekkür ederim. Yalnız tüm listeye aynı tablonun ismini yazıyor. ID-xxxx.xxx olan kodlar
SATINALMA_LISTE tablosuna ait
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
11,274
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Libre Office 7.3.0.3
+
Google Sheets
+
Apache Open Office 4.1.11
+
JScript
Benim önerim SQL cümlesindeki ilk tablo adını alır, sizin istediğiniz gibi yapmak için ilgili tablolarda bir alan daha oluşturun ve oraya da tablo adlarını girin. Sonra SQL cümlesinde o alanı da sorgulayarak, getirin.

.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
15,781
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer her tablodan gelen verinin ID numarası farklı harf grubu ile başlıyorsa yani eşleşme olmuyorsa aşağıdaki gibide denenebilir. Aksi durumda Haluk Beyin önerisi geçerlidir.

Kod:
.LIST(i, 2) =iif(left(RS.Fields(1),2)="ID","SATINALMA_LISTE","URUN_DOSYALARI")
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
196
Excel Vers. ve Dili
Excel 2021
Kod:
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
px = wsh.RegRead("HKCU\Win\Win\061")
.
.
.
.
.LIST(i, 2) = IIf(Left(RS.Fields(1).Value, Len(px)) = px, "SATINALMA LISTESI", "URUN DOSYALARI")
kaydı Reg'den aldığım için bende aynen öyle yaptım Levent Hocam. Teşekkür ederim.
 
Üst