Arbeiten mit Access Datenbank Zugriff


Radicula

Grünschnabel
Ich fülle ein Combobox mit der Liste der Länder (im Beispiel pkey). Beim anwählen des Landes möchte ich das die Spielerliste des Landes erscheint.
Dies klappt auch solange ich dies mit dem pkey mache, möchte aber das der Name erscheint und der pkey abgeglichen wird.

Kann ich pkey + laendername in der combobox anzeigen lassen?
Wie muss ich es gestalten, damit vb nach der wahl des Landes wieder den pkey verwendet und nicht den Landesnamen?
Oder habt ihr andere Ansätze?


Bin sehr dankbar für euren Rat


Hier mein Code:
Code:
Option Explicit On


Imports system.Data.OleDb


Public Class form1

    'Boolean abrage ob form_load ereignis stattfindet - verhindert füllen der combobox beim starten
    Public formladen As Boolean

    'BENÖTIGTE OBJEKTE FÜR DATENBANKZUGRIFF
    Public dbconn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Dokumente und Einstellungen\phil\Eigene Dateien\Visual Studio 2005\Projects\Kopie von WM-Game\WM-Game\WMSpiel.mdb")
    Public dbadapter As New OleDbDataAdapter
    Public dataset As New Data.DataSet
    Public dataview As Data.DataView


    Private Sub formtest4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        formladen = True


        dbconn.Open()

        dbadapter = New OleDbDataAdapter("select * from land", dbconn)

        dataset = New Data.DataSet

        dbadapter.Fill(dataset, "ländle")

        dbconn.Close()



        ComboBox1.DataSource = dataset.Tables("ländle")
        ComboBox1.DisplayMember = ("pkey") 'sollte land anzeigen und zugehörigen key zeigen/"speichern"

        formladen = False

    End Sub



    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        If formladen = False Then

            Dim auswahl As String
            auswahl = ComboBox1.Text


            Dim dbadapter As New OleDbDataAdapter
            Dim dataset As New Data.DataSet

            dbconn.Open()


            dbadapter = New OleDbDataAdapter(("SELECT name FROM WMSPIELER WHERE fland=" & auswahl), dbconn)
            dataset = New Data.DataSet

            dbadapter.Fill(dataset, "wmspieler")

            dbconn.Close()


            ListBox1.DataSource = dataset.Tables("wmspieler")
            ListBox1.DisplayMember = ("name")

        End If



    End Sub
End Class
 
Also ich denke eine relativ simple Möglichkeit wäre einfach ein Label oder eine Textbox neben deine Combobox zu setzen und dir dort den Key anzeigen zu lassen.

Das du beides in einer Combobox darstellen kannst, geht glaube ich nicht.

Gruß Ahnungsloser8000
 

Radicula

Grünschnabel
Danke für den Tip Hi Ahnungsloser8000. Mit einer unsichtbaren Box geht es. Dann den pkey wieder aus der Box auslesen.

Ich denke es sollte aber noch andere Lösungen geben die weniger Datenbankzugriffe benötigen, da ich jetzt jedesmal eine zweite Abfrage mache um den pkey zu erhalten...
und dann erst die Abfrage die den key benötigt.

Philippe