# Combobox mit Access verknüpfen



## hazzard02 (13. März 2007)

Hallo zusammen!

In einem kleinen Projekt möchte ich in eine ComboBox Daten aus einer MS Access-Datenbank einfügen um damit Werte in einer neuen Tabelle zu speichern.

Also, ich hab eine User Form, in die ich Flüge eintragen möchte, die sich in einer Access Datenbank befinden, bzw. neue Anfügen. Um die Eingabe zu erleichtern, möchte ich die ComboBox mit vordefinierten Werten ausstatten, die sich in einer anderen Tabelle, aber in der gleichen Datenbank wie die Flüge befinden.

Tabelle "Flugbuch" (ID, Datum, Zeit, Kennzeichen)
Tabelle "Kennzeichen" (Kennzeichen, Musterbezeichnung)

Bsp.: Wenn ich einen neuen Flug in das Formular eingebe, kann ich aus der ComboBox ein vordefiniertes Kennzeichen auswählen, dass aus der o.g. Tabelle ausgewählt wird. Der neue Datensatz, samt Kennzeichen aus der anderen Tabelle, soll in der Tabelle "Flugbuch" gespeichert werden.  

Danke im vorraus.

Viele Grüße

Martin


----------



## Jacka (14. März 2007)

Hi!

Das geht sogar ohne Code!
Schau dir das Bild im Anhang an (lässt sich damit leichter erklären).

Wenn du in die Tabelle Flugbuch in der Entwurfsansicht öffnest und den Reiter, ich habe es mal KennzeichenID genannt, gehst, kannst du im Tab "Nachschlagen" -> Steuerelement anzeigen -> Kombinationsfeld auswählen.
Unter Datenherkunft wählst du dann deine Tabelle Kennzeichen aus. 
Erstelle dann ein Formular mit dem Assistenten und du wirst sehen, dass er schon gleich eine Combobox erstellt mit den Inhalten der Tabelle Kennzeichen -> Musterbezeichnung. Im Flugbuch wird dann die ID, also KennzeichenID gespeichert.

Hoffe das war verständlich erklärt, sonst einfach nochmal fragen!  

Viele Grüße,
Jacka


----------



## hazzard02 (14. März 2007)

Hallo!

Danke erstmal für die super schnelle Antwort. 

Ich habe aber vergessen zu erwähnen, dass ich die Codierung in VB6 vornehme. D.h. ich kann dem Code nicht ausweichen, da ich die ComboBox selbsständig erstelle.

Bitte um weitere hilfe  

Vielen Dank

Martin


----------



## Jacka (14. März 2007)

Ups! Sorry! Hätte genauer lesen sollen!

Wie rufst du denn die Werte ab? Über ADO, DAO oder einem Data Environment?

Über ADO könnte man das so erledigen (Verweise müssen gesetzt sein -> ActiveX Data Object Library):
Das Form enthält 1 Textbox, eine DataCombo und einen Button.

```
Option Explicit

Dim conn As ADODB.Connection 
Dim rs As ADODB.Recordset

Private Sub Form_Load()
' Datenbank öffnen

On Error GoTo Fehler:
   Set conn = New ADODB.Connection
   conn.CursorLocation = adUseClient
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\temp\Flugbuch.mdb;"
   
Call DbImport
    
    Exit Sub

Fehler:
    MsgBox "Can not find Database!"
   
End Sub

Private Sub Command1_Click()
Dim Datumwert As Date
Dim Kennzeichen As Integer
Dim sql As String

Datumwert = Text1.Text
Kennzeichen = DataCombo1.BoundText

sql = "INSERT INTO Flugbuch ( Datum, KennzeichenID )SELECT '" & Datumwert & "' AS Ausdr1, '" & Kennzeichen & "' AS Ausdr2;" ' SQL-Anweisung 

' Recordset erstellen und öffnen
    Set rs = New Recordset
    rs.Open sql, conn, adOpenStatic, adLockOptimistic

' DataList mit dem Inhalt des Recordsets füllen
With DataCombo1
Set .RowSource = rs
    .ListField = "Musterbezeichnung"  ' Text der angezeigt wird 
    .BoundColumn = "KennzeichenID" ' ID-Wert

End With
End Sub

Private Sub DbImport()

' Recordset erstellen und öffnen
    Set rs = New Recordset
    rs.Open "SELECT KennzeichenID, Musterbezeichnung FROM Kennzeichen ORDER BY KennzeichenID", conn, adOpenStatic, adLockOptimistic ' SQL zum Auslesen der Musterbezeichnung 

' DataList mit dem Inhalt des Recordsets füllen
With DataCombo1
Set .RowSource = rs
    .ListField = "Musterbezeichnung"
    .BoundColumn = "KennzeichenID"

End With
      
End Sub

Private Sub Text1_DblClick()
    Text1.Text = Now  ' Bei Doppelklick aktuelles Datum + Uhrzeit
End Sub
```

Vielleicht hilft das weiter! Bei Fragen: Posten  

Viele Grüße,
Jacka


----------



## 5Rad (28. März 2007)

Guten Abend,
Ich hab diese Woche neu angefangen mit VB6.0 und möchte grad ein Test programm schreiben. Ich sitz jetzt seit zwei Tagen rum und versuch irgenwie mit der Datenbank zu arbeiten.... Ich wollt fragen ob du mir vielleicht denn Code bissel erklären könntest da DB komplet neu für mich sind. 

Ich danke im Voraus

mfg
Pietro


----------

