vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Daten Access nach ComboBox 
Autor: Tweety2016
Datum: 26.07.19 18:11

Hallo zusammen,

ich kann schon mal die Daten einer Spalte "HT_1" in einer Access Tabelle in einer Combobox anzeigen.

Mit diesem Code:

        ComboBox1.DataSource = DataTable
        ComboBox1.DisplayMember = "HT_1"
        ComboBox1.ValueMember = "HT_1"
Aber wie geht es, dass ich unter diese Daten der Spalte "HT_1" auch die Daten der Spalte "HT_2" anzeigen lasse?

THX
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Manfred X
Datum: 27.07.19 08:43

Hallo!

Das erkläre genauer.
Du bist Dir im klaren darüber. daß bei der Datenbindung an eine
Auflistung gebunden wird - in Deinem Fall mutmaßlich an die Zeilen
einer Datatable, die Daten aus einer Access-Tabelle enthalten?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Tweety2016
Datum: 27.07.19 10:15

Hallo,

Ja es handelt sich wie beschrieben um eine Tabelle in Access, die viele Spalten hat.
Die Tabelle heißt Sammlung. Spalten die mich interessieren heißen HT_1 und HT_2.
Ich habe eine Combobox und will jetzt alle Zeilen der Spalten HT_1 und HT_2 untereinander in die Combobox übertragen.

Die Reihenfolge ist nicht wichtig. Es kann also so übertragen werden dass zuerst alle Zeilen der ersten Spalte übertragen werden und unten drunter die der zweiten oder die erste Zeile beider Spalten untereinander dann der zweiten Zeile usw.

Ich kann bisher aber immer nur eine Zeile übertragen.

Wenn es nicht geht, geht es dann jede Spalte in eine eigene Combobox und den Inhalt der beiden Comboboxen in einer dritten Box zusammen führen?

Danke.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Manfred X
Datum: 27.07.19 15:42

Ich verstehe nicht den Zweck.
Mit direkter Datenbindung an die Table geht das nicht.

Vielleicht mit LINQ ....
   Dim dt As New DataTable
   dt.Columns.Add("HT-1", GetType(String))
   dt.Columns.Add("HT-2", GetType(String))
 
   dt.Rows.Add("HT_1_1", "HT_2_1")
   dt.Rows.Add("HT_1_2", "HT_2_2")
   dt.Rows.Add("HT_1_1", "HT_2_2")
 
 
   Dim q1 = From r As DataRow In dt
                 Select r.Field(Of String)("HT-1")
                 Distinct
 
   Dim q2 = From r As DataRow In dt
                 Select r.Field(Of String)("HT-2")
                 Distinct
 
   Dim q1und2 As List(Of String) = 
        Enumerable.Concat(Of String)(q1, q2).ToList
 
   cbo.DataSource = q1und2 'cbo = Combobox (WinForms)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Tweety2016
Datum: 27.07.19 19:33

Hi,

bekomme leider eine Fehlermeldung in der ersten Zeile von den drei mit Rows.Add:

{"Die Eingabezeichenfolge hat das falsche Format.<HT_1_1> konnte nicht in der ID-Spalte gespeichert werden. Erwarteter Typ: Int32."}

Die erste der benötigten zwei Spalten ist die Spalte 16 die erste ist die Spalte mit der ID, die ich aber nicht brauche.

Wenn die Daten von der Access Tabelle in die Box geschrieben werden, sind sie darin als DataRowView nicht als String. Wie kann ich alle Items nach String umwandeln?

GRüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Tweety2016
Datum: 27.07.19 20:11

Versuchte jetzt so die Items in Strings umzuwandeln und in einer Textdatei zu speichern, scheitere aber an der Zeile "ConnectionString ( Fettschrift ):

        Dim W As IO.StreamWriter
        Dim i As Integer
        Dim READER As OleDbDataReader
        Dim COMMAND As OleDbCommand
        Dim myConn As New OleDbConnection
        Dim Query As String 
 
        Query = "select * from database.edata"
         myConn.ConnectionString = "WissensdatenbankConnectionString" 
        COMMAND = New OleDbCommand(Query, myConn)
        READER = COMMAND.ExecuteReader
 
        W = New IO.StreamWriter("C:\Desktop\Suche.txt")
 
        For i = 0 To ComboBox1.Items.Count - 1
 
            READER.Read()
            Dim myText = READER.GetString(ComboBox1.Items.Item(i))
            W.WriteLine(myText)
 
        Next
        W.Close()
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: effeff
Datum: 27.07.19 23:40

a) Es "macht" keinen Sinn, verschiedene Spalteninhalte quasi in einem Feld zusammenzufassen; Da ist was in Deiner Datenbank falsch...

b) "WissensdatenbankConnectionString" ist ein einfacher Text, aber kein ConnectionString.

c) Wie hast Du die Daten aus Deinem Eröffnungsthread abgefragt? Du hast dort doch irgendwo eine DataTable herausbekommen, die bei Dir anscheinend "DataTable" heißt. Offensichtlich hast Du dort mehrere Spalten aus Deiner Access-DB abgefragt, die z. B. "HT1" und so weiter heißen. Du brauchst doch nur eine neue DataTable, in diesem Fall z. B. "GesamtDataTable" zu erstellen, zwei Spalten hinzuzufügen (eine ID-Spalte für einen Primärschlüssel, eine Spalte für Werte) und dann aus Deiner Original DataTable namens "DataTable" durch die Spalten zu iterieren und die Werte in die DataTable "GesamtDataTable" hinzuzufügen. Dann kann Du die DataTable "GesamtDataTable" an die ComboBox binden. Aber wie in a) beschrieben, Dein Datenbankdesign scheint ein bisschen schräg...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: H?nk
Datum: 28.07.19 12:15

Wenn die Combobox nicht gebunden sein muß, versuch es mal so

        Using oConnection As OleDbConnection = New OleDbConnection( _
          "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pfad_Datenbank & _
          "MeineDatenbank.mdb;")
            Using oAdapter As OleDbDataAdapter = New OleDbDataAdapter("SELECT" & _
            "HT_1, HT_2 FROM MeineTabelle", oConnection)
                Using oTable As DataTable = New DataTable
 
                    oAdapter.Fill(oTable)
 
                    If oTable.Rows.Count > 0 Then
                        For Each oRow As DataRow In oTable.Rows
                            ComboBox1.Items.Add(oRow("HT_1"))
                            ComboBox1.Items.Add(oRow("HT_2"))
                        Next
                    End If
 
                End Using
            End Using
        End Using

H?nk

(Wer fr?h aufsteht hat mehr vom Tag)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Manfred X
Datum: 28.07.19 13:43

Schreibe überall wo im Beispiel Of String steht statt dessen Of Integer,
dann sollte es für zwei Integerspalten funktionieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten Access nach ComboBox 
Autor: Tweety2016
Datum: 12.08.19 11:27

Danke vielmals !!!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel