VBA ! Combobox

KingOfMetropole

Grünschnabel
Hallo

ich habe folgendes Problem:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pfad & ";Persist Security Info=False"
strSQL = "SELECT FKurz & FName & FStraße & FPLZ & FOrt FROM Adressdatenbank"

diesen inhalt zeigt er in der ComboBox an ! ist es möglich sich auf FKurz zu beschränken aber er trotzdem alle ausliest ? ( Ich möchte also nur FKurz angezeigt bekommen )

Vielen Dank im voraus
 
oke ich probiere das mal genauer zu erläutern:

Code:
Private Sub UserForm_Activate()
'Variablen deklarieren
  Dim oConn As ADODB.Connection
  Dim oRS As ADODB.Recordset
  Dim x As Variant
  Dim y() As Variant
'Verbindung zur Datenbank wird aufgebaut
  Set oConn = CreateObject("ADODB.Connection")
  oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pfad & _
  ";Persist Security Info=False"
'Füllen des Recordsets
	 strSQL = "SELECT FName FROM Adressdatenbank order by FName"
  Set oRS = oConn.Execute(strSQL)
  x = oRS.GetRows()
  If IsArray(x) Then
	ReDim y(UBound(x, 2))
	For i = 0 To UBound(x, 2)
	  y(i) = x(0, i)
	Next i
'Ausgabe des Recordsets in eine ComboBox
	ComboBox1.List = y()
  End If
'Verbindungsabbau
  Set oConn = Nothing
  Set oRS = Nothing
End Sub

Also bisher lesen wir dadurch nur die Spalte "FName" aus. Allerdings wollen wir noch die Adressspalten auslesen. Ist es möglich diese gleichzeitig mit auszulesen, aber in der ComboBox zu verstecken. ?

Also soll in der Combobox nur der Name stehen und sich daraus in dem Feld die Adresse der Firma komplett wiederspiegeln :)

Hier ein Ausschnitt wie es bisher aussieht:

Code:
'Text wird aus ComboBox1 in das TextFeld2 übernommen
Private Sub ComboBox1_Click()
TextBox2.Text = ComboBox1.Value
End Sub
'Anzeigen der Adressdaten der Firma in TextFeld2
Private Sub TextBox2_Change()
Me.TextBox2 = "FName" & vbCrLf & "FStraße" & vbCrLf & "FPLZ" & vbCrLf & "FOrt"
End Sub
Private Sub UserForm_Activate()
'Variablen deklarieren
  Dim oConn As ADODB.Connection
  Dim oRS As ADODB.Recordset
  Dim x As Variant
  Dim y() As Variant
'Verbindung zur Datenbank wird aufgebaut
  Set oConn = CreateObject("ADODB.Connection")
  oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pfad & _
  ";Persist Security Info=False"
'Füllen des Recordsets
	 strSQL = "SELECT FName FROM Adressdatenbank order by FName"
  Set oRS = oConn.Execute(strSQL)
  x = oRS.GetRows()
  If IsArray(x) Then
	ReDim y(UBound(x, 2))
	For i = 0 To UBound(x, 2)
	  y(i) = x(0, i)
	Next i
'Ausgabe des Recordsets in eine ComboBox
	ComboBox1.List = y()
  End If
'Verbindungsabbau
  Set oConn = Nothing
  Set oRS = Nothing
End Sub
 

Anhänge

  • screen.JPG
    screen.JPG
    11,6 KB · Aufrufe: 100
Schonmal versucht das Recordset mit ner While-Schleife zu durchlaufen und die Combo so zu füllen:

Code:
 oRS.MoveFirst
   Do While Not oRS.EOF
 	Combo1.AddItem oRS.Fields("Feldname").Value
 	oRS.MoveNext
   Wend
 
Statt

Code:
      x = oRS.GetRows()
      If IsArray(x) Then
   	ReDim y(UBound(x, 2))
   	For i = 0 To UBound(x, 2)
   	  y(i) = x(0, i)
   	 Next i
   end if

mal

Code:
   oRS.MoveFirst
     While Not oRS.EOF
   	Combo1.AddItem oRS.Fields("Feldname").Value
   	oRS.MoveNext
     Wend

versuchen - nur noch Combo1 gegen den Namen deiner Combo austauschen
 
Zuletzt bearbeitet:
mhhh gut also die combobox wird jetzt auch weiterhin mit den Daten gefüllt.
nur wie bekommen wir jetzt in der untersten textbox die anderen daten zu der dazugehörigen firma angezeigt ?
 
Zurück