Combobox mit Access verknüpfen

hazzard02

Grünschnabel
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. :confused:

Danke im vorraus.

Viele Grüße

Martin
 
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
 

Anhänge

  • Access_Combobox.jpg
    Access_Combobox.jpg
    71,9 KB · Aufrufe: 287
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
 
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.
Code:
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
 
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
 
Zurück