• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

5 adet tabloya combobox ekleyerek listeleme

Katılım
30 Ocak 2008
Mesajlar
154
Excel Vers. ve Dili
offis 2003
Arkadaşlar iyi akşamlar
aşağıdaki kod ile şuan olcu_kontrol tablosunu listeliyorum kod calısıyor. yalnız bunun gibi 5 adet daha tablom var access veritabanında buraya bir combobox koyarak hangisini secersek o tablodaki veriyi listemesi için nasıl bir yol izleyebiliriz ?


Sub baglan()
Set AdoCN = CreateObject("ADODB.Connection")
Dosya_Yolu = ThisWorkbook.Path & "\KİŞİLER.mdb"
AdoCN.Provider = "Microsoft.Jet.OLEDB.4.0"
AdoCN.ConnectionString = Dosya_Yolu
AdoCN.Open
End Sub
Sub yukle()
With ListBox1
.Clear
Set rs = CreateObject("adodb.recordset")
rs.Open "select isteyen_servis,unite, yapilacak_is,tarih, saat, yapacak_servis from olcu_kontrol", AdoCN, 1, 1



.ColumnCount = rs.fields.Count
.ColumnWidths = "100;70;50;50;50;50"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing
End Sub





burdaki kodda dediğim sekilde yapılmış bir örnek ama ben bunu kendi uygulamama uyarlayamadım farklı yontemle yazılmış burdada 4 adet tablo var combobox ile hangisini secersek onu listeliyor.

Public Baglanti As ADODB.Connection
Public KayitSeti As ADODB.Recordset
Public BagMetin As String, Sorgu As String
Public Veri As Variant
Public Sutun As Long
Private Sub ComboBox1_Change()
Set Baglanti = New ADODB.Connection

BagMetin = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " _
& Application.ThisWorkbook.Path & "\" & "VT1.mdb;Persist Security Info=False"

Sorgu = "SELECT * FROM " & ComboBox1.Value & " ORDER BY Kimlik"

With Baglanti
.CursorLocation = adUseClient
.Open BagMetin
Set KayitSeti = .Execute(Sorgu)
End With

With KayitSeti
Set .ActiveConnection = Nothing
Sutun = .Fields.Count
Veri = .GetRows
End With

Baglanti.Close

With UserForm1
With .ListBox1
.Clear
.ColumnCount = Sutun
.BoundColumn = Sutun
.List = Application.Transpose(Veri)
.ListIndex = -1
End With
End With

Set KayitSeti = Nothing
Set Baglanti = Nothing

End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem "Tablo1"
ComboBox1.AddItem "Tablo2"
ComboBox1.AddItem "Tablo3"
ComboBox1.AddItem "Tablo4"
End Sub
 
Sayın dreamymost,

Sürekli olarak sorunuzu yanlış yere soruyorsunuz. Sorduğunuz soru Access'i değil Excel'i ilgilendiriyor.
 
slm

Combobox nesnesinden seçim yapabildiğini kabul ediyorum

TABLO=Trim(Combobox1.Text)

rs.Open "select isteyen_servis,unite, yapilacak_is,tarih, saat, yapacak_servis from " & TABLO, AdoCN, 1, 1
 
slm

sub yukle() içerisinde, comboboxun bulundupu userformdan değer alınabilir

sub yukle()
tablo=userform1.combobox1.text
-------
rs.Open "select isteyen_servis,unite, yapilacak_is,tarih, saat, yapacak_servis from " & tablo, AdoCN, 1, 1
------
-----
end sub

ben bunu yapmam dersen sub yukleye hangi programdan geliniyorsa...
combobox değerini enterlemek gerek..

private sub falan filan
------------
tablo=userform1.combobox1.text
yukle tablo
------------
end sub

sub yukle () aşağıdaki gibi değişir ve şöyle olur

sub yukle (tablo)
----------
rs.Open "select isteyen_servis,unite, yapilacak_is,tarih, saat, yapacak_servis from " & tablo, AdoCN, 1, 1
------
-----
end sub
 
yine slm

Sorgu = "SELECT * FROM " & ComboBox1.Value & " ORDER BY Kimlik"

bu satır altta verdiğin kotlardaki satır .. aynı program içinde kullanmış.. bir alt programı yok... combobox1 in userformdaki değeri direk sorguya intikal ettirilmiş. sende durum farklı... alt program kulanmaktasın sub yukle() modulune uygulamalısın...
yukarda combobox değerini module nasıl alınması gerektiğini anlattım...
en basiti şu.. combobox ; combobox1 ve userform userform1 se;

Sub yukle()
With ListBox1
.Clear
Set rs = CreateObject("adodb.recordset")
rs.Open "select isteyen_servis,unite, yapilacak_is,tarih, saat, yapacak_servis from "& trim(userform1.combobox1.text), AdoCN, 1, 1

.ColumnCount = rs.fields.Count
.ColumnWidths = "100;70;50;50;50;50"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing
End Sub
 
Geri
Üst