vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB & Datenbanken
Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 27.09.06 00:11

Hallo zusammen!

Ich habe vollgendes Problem und hoffe ihr könnt mir weiterhelfen.

Ich habe zwei Tabellen einmal Tabelle "Artikel" und Tabelle "Artikelgruppe".
Die Tabelle Artikel besitz nun die Felden :
ArtikelID
Artikelbez
Artikelpreis
Artikelgruppe*

*Hier sollen nun die in der Tabelle Artikelgruppe definierten Werte mit Hilfe einer Dropdownliste angezeigt werden.

In Access ist das ja ganz easy.....aber wie bekomme ich denn jetzt VB dazu mir diese Daten aus der Tabelle Artikelgruppe anzuzeigen??

Die Tabelle Artikel habe ich so in das Programm mit eingebunden:
[code
]Set Db = OpenDatabase(App.Path & "\marti2.mdb")
Set Tb = Db.OpenRecordset("tbl_Artikel", dbOpenDynaset)wie sag ich VB denn jetzt das er bei dem Feld Artikelgruppe der Tabelle Artikel in die Tabelle Artikelgruppe schauen soll um diese mir dann in der Dropdownliste anzuzeigen????


Vielen Dank schon mal
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: Prian0815
Datum: 27.09.06 10:32

In etwa so:
dim stsql as string
Set RS = New ADODB.Recordset
stSQL = ""
stSQL = "SELECT Artikelgruppe.Bezeichnung, Artikelgruppe.weiteresFeld" _
& " FROM Artikelgruppe WHERE (((Artikelgruppe)=" & Artikelgruppe& "));"
RS.Open stSQL, db, adOpenStatic, adLockOptimistic
In der String-Variablen 'Artikelgruppe muß dann der Wert stehen, nachdem du suchst. Ich hoffe das hilftv dir erst ma weiter.

Gruß Armin

P.S.: always look on the bright side of Life!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 28.09.06 08:35

Hallo nochmal!

Danke erstmal für die schnelle Antwort!

Habe es irgendwie noch nich hinbekommen.
Muß aber auch gestehen das ich auch nicht wirklich weiß wo für das "&" steht!

Habe meine Abfrage jetzt so gemacht:

stsql = "SELECT Zubehörbez FROM tbl_Zubehörgruppe INNER JOIN tbl_Artikel WHERE (" & _
  "tbl_Zubehörgruppe.ZubehörID = tbl_Artikel.ZubehörID)"
Set rs = Db.OpenRecordset(stsql)
Allerdings sagt mir dann der kompiler :
Laufzeitfehler 3131
Syntaxfehler in From Klausel!!!
Wenn ich folgendes dahinter packe ;" sagte er mir: erwartet Anweisungsende!!!

Wäre super wenn mich mal einer Aufklären könnte
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: Prian0815
Datum: 28.09.06 10:40

Hi berti, dein InnerJoin muß denke ich so aussehen:
stsql = "SELECT Zubehörbez FROM tbl_Zubehörgruppe INNER JOIN tbl_Artikel On tbl_Zubehörgruppe.ZubehörID = tbl_Artikel.ZubehörID"
Set rs = Db.OpenRecordset(stsql)
Hier ein Beispiel von mir:

SELECT Abteilung.AbtKey, Mitarbeiter.MitKey, *
FROM Abteilung INNER JOIN Mitarbeiter ON Abteilung.AbtKey = Mitarbeiter.MitAbteilungNr;
Wenn du mit Access arbeuitest, kannst du dort den Abfrageentwurf nachbasteln, und dir das SQL-Statement aus der Ansicht ---> SQL-Ansicht rauskopieren.

Gruß Armin

P.S.: always look on the bright side of Life!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 28.09.06 10:51

Hi Prian!

Danke für die schnelle Antwort!
Habe die Abfrage vorhin auch so aufgebaut.....wollte das Ergebnis gerade Posten.
Denn nun sagt mit VB folgendes:

Laufzeitfehler 13
Typen unverträglich


Hier der Code:
Deklaration Allgemein
Dim Db As Database
Dim Tb As Recordset
Dim Tb2 As Recordset
Dim stsql As String
Dim rs As ADODB.Recordset
 
Private Sub Form_Load()
Set Db = OpenDatabase(App.Path & "\marti2.mdb")
Set Tb = Db.OpenRecordset("tbl_Artikel", dbOpenDynaset)
 
stsql = ""
stsql = "SELECT Zubehörbez FROM tbl_Zubehörgruppe INNER JOIN tbl_Artikel ON (" & _
  "tbl_Zubehörgruppe.ZuberhörID = tbl_Artikel.ZuberhörID)"
Set rs = Db.OpenRecordset(stsql)
rs.Open stsql, Conn, adOpenStatic, adLockOptimistic
End Sub
Warum geht das nicht ??
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 28.09.06 13:12

vielleicht hat ja noch jemand anderes der gerade Online ist ein Tipp für mich und kann mir helden.

EIN TEIL Des Codes sieht gerade so aus:
Deklaration Allgemein
Dim Db As Database
Dim Tb As Recordset
Dim Tb2 As Recordset
Dim stsql As String
 
 
Private Sub Form_Load()
Set Db = OpenDatabase(App.Path & "\marti2.mdb")
Set Tb = Db.OpenRecordset("tbl_Artikel", dbOpenDynaset)
Set RS = New ADODB.Recordset
stsql = ""
stsql = "SELECT Zubehörbez FROM tbl_Zubehörgruppe INNER JOIN tbl_Artikel ON (" & _
  "tbl_Zubehörgruppe.ZubehörID = tbl_Artikel.ZubehörID)"
RS.Open stsql, Conn, adOpenStatic, adLockOptimistic
Set RS = Db.OpenRecordset(stsql)
Fehlermeldung: Laufzeitfehler 3001
Die Argumente sind vom falschen TYP, liegen ausserhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar


Wäre schon wenn man mir helfen könnte
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: Prian0815
Datum: 28.09.06 15:03

Dim rs mal ganz normal as recordset. Dann sollte alles funzen.

Gruß Armin

P.S.: always look on the bright side of Life!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 04.10.06 20:52

Hallo!

Habe es leider immer noch nicht hinbekommen.
Habe nun etwas mehr Über den Datenbankzugriff mit ADO gelesen (Denn das ist alles NEULAND für mich).
Versuche nun erstmal mit hilfe einer Sql abfrage eine Dropdownliste zu füllen.
Und dies mit Daten aus nur einer Tabelle! Wenn ich das hinbekomme dann kann ich den versuch mit dem Zugriff auf die Verknüpften Tabellen wagen.

CODE
Private Sub Command2_Click()
Set Rs2.ActiveConnection = Cn 'aktive Verbindung zuweisen
Rs2.LockType = adLockOptimistic
Sql = "Select tbl_Artikel.Artikelname from tbl_Artikel"
Rs2.Open (Sql)

'Sql "Select tbl_Artikel.Artikelname from tbl_Artikel"

If Not Rs2.EOF Then
Combo1.AddItem (Rs2)
TerminateConnection
End If

End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 04.10.06 20:54

Nun bekomme ich die Fehlermeldung:
Argument ist nicht optional!
dieser Teil des Codes wird makiert: Combo1.AddItem (Rs2)

Danke schon einmal im Vorraus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 05.10.06 00:39

Hat sich schon erledigt. Habe es selbst hinbekommen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 05.10.06 21:41

Hallo zusammen!
Ich stell die ganze Sache nochmal vor damit man nicht die vorherigen Threads lesen muß!

Habe folgendes Problem:
zunächst einmal stelle ich eben beide Tabellen vor:
Tbl_Artikel
ArtikelId PK
Artikelname
GruppenID FK

Tbl_Gruppen
GruppenID PK
Gruppenname

Wir Ihr seht sind die Tabellen durch GruppenID miteinandere verknüpft!
Ich möchte nun in Vb neue Artikel anlegen können.
Den Artikelname weise ich der Datenbank über ein Textfeld zu.
Das klappt auch einwandfrei!
Nun möchte ich aber das in einer Combobox bzw Dropdownliste die möglichen Artikelgruppen (die ich ja vorher in tbl_Gruppen definiert habe) angezeigt werden!
Nur diese Artikelgruppen sollen zur Auswahl stehen!

In Access wäre das ja ganz einfach.

In der Combobox werden mir nun die GruppenID's aufgelistet.
Er schreibt sie dann auch mit einem "Senden"Befehl in die Datenbank.
Aber mir wird ja nur die GruppenID angezeigt! Wie mache ich es möglich das er mir in der Combobox die Gruppennamen anzeigt und trotzdem die ID in die Datenbank schreibt?

Ich hoffe ihr versteht was ich meine

Danke schon einmal

Hier mein Code
Private Sub cmdAdd_Click()
Rs.AddNew
Clear
txtArtikelbez.SetFocus
 
Set Rs2.ActiveConnection = Cn 'aktive Verbindung zuweisen
Rs2.LockType = adLockOptimistic
Sql = "SELECT tbl_Gruppen.GruppenID, " & " tbl_Gruppen.Gruppenname from" & _
  "tbl_Gruppen"
Rs2.Open (Sql)
 
If Rs2.RecordCount > 0 Then
  While Not Rs2.EOF
    Combo1.AddItem Rs2("GruppenID") 
    Rs2.MoveNext
  Wend
   Combo1.Locked = False
 
End If
Rs2.Close
'TerminateConnection
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: wb-soft
Datum: 06.10.06 08:15

Hi!

Generell scheinst du noch nicht viel Erfahrung mit DB-Programmierung zu haben. Da kommt noch einiges an Problemen auf dich zu.

Ich würde dir empfehlen, ein Buch zu diesem Thema zu besorgen.

Dein aktuelle Problem ist so zu lösen:

    Combo1.AddItem Rs2("Gruppenname") 
    Combo1.ItemData(Combo1.NewIndex) = Rs2("GruppenID")
Damit sieht der User den Klartext, und die zu speichernde ID liegt in ItemData bereit.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 06.10.06 10:29

Ja ich weiß! Jeder Anfang ist schwer
Kann mich noch nicht entscheiden welches Buch ich holen soll!
Welches würdet ihr empfehlen?

Und danke....jetzt funzt es nämlich auch.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: wb-soft
Datum: 06.10.06 10:57

Hi!

Empfehlenswert:

Die Visual Basic 6 Bibel: Enthält gute Kapitel zu DB-Programmierung. Ich glaube, davon gab es einmal ein E-Book.

Datenbanken mit Visual Basic 6, von Roger Jennings: Das ist die Bibel für DB-Programmierung. VB-Kenntnisse sollten aber bereits vorhanden sein.

Bei Michael Kofler ist vielleicht aus etwas dabei. Der schreibt sehr gute Bücher zu unterschiedlichen Themen rund um Computer.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 06.10.06 12:06

Alles klar, werde mich mal schlau machen und eins Ordern.

Übrigens hat das mit deinem Code nur zum Teil geklappt.
Er schreibt immer den letzten Gruppennamen in die Datenbank hinein.
Wenn ich also einen neuen Artikel "Artikel5" anlege und in der Combobox die Artikelgruppe als z.b"(ladegerät) definieren, schreibt er mir immer als Gruppennamen "Akku" in die Datenbank! (Akku ist der letzte Datensatz in der tbl_Gruppen)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenbankinhalte in Dropdownliste laden 
Autor: berti
Datum: 06.10.06 13:09

Habs nun doch hinbekommen , danke nochmal
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-2024 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