Access-Datenbank in visual basic 6.0 einbinden

bsellmair

Grünschnabel
hallo,
ich bin recht neu in dem gebiet und deshalb dürfte vielen von euch die antwort auf meine frage recht simpel erscheinen...
ich habe eine bestehende access-datenbank mit 3 tabellen.
mit hilfe des form-designers habe ich in visual basic 6.0 ein formular erstellt.

mein problem lautet nun folgendermaßen:
im formular habe ich dropdownfelder (kombinationsfelder), mit deren hilfe ich auf schnelle art und weise die artikelnummern aus der datenbank zugreifen will, d.h. konkret wie kann ich in meinem formular die spalte "ArtNr" aus der tabelle "Artikel" von der Access-Datenbank für das kombinationsfeld hinterlegen

Ich wäre euch äußerst dankbar, wenn ihr mir die lösung für mein problem mit den entsprechenden deklarationen und die AddItem-Einträge speziell auf mich zugeschnitten präsentieren könntet.
(dazu noch folgende angaben:
- der pfad der DB lautet "c:\Access\dbproddev.mdb"
- die namen der spalte und tabelle wie schon erwähnt "ArtNr" und "Artikel"
- das kombinationsfeld habe ich "ComboArtNr1" genannt)


Schon mal im Voraus danke, Bernhard
 
Zuletzt bearbeitet:
Hallo,

zunächst mal Willkommen im Forum! Vermutlich wird Dir niemand Dein Programm schreiben, dass musst Du schon selbst machen. Jedoch helfen Dir alle gern, wenn Du Detail-Probleme hast.

Dieser Tipp hilft Dir erstmal grundsätzlich weiter, um den Zugriff auf Deine Datenbank zu realisieren. Damit solltest Du weiter kommen.

Ansonsten noch der kleine Hinweis, dass wir hier auch auf korrekte Groß- und Kleinschreibung achten (dass hast Du mit den Nutzungsbedingungen für das Forum akzeptiert). Dadurch wird es auch anderen leichter, Deinen Text zu lesen.

Grüsse
ronaldh
 
Hallo ronaldh,

Zunächst einmal bitte ich um Entschuldigung, dass ich meinen Post lediglich in Kleinschreibung verfasst habe, ich war leider zeitlichen Engpässen unterworfen.

Des Weiteren erschien mir die Lösung, dass mir ein erfahrenerer Programmierer, als ich es bin, am Einfachsten, die entsprechenden Codepassagen speziell für meine Belange angibt. Was natürlich auch in meinem Sinne ist, dass mir jemand ein gutes Beispiel für Datenbankverknüpfungen nennt.
Aus diesem Grund bin ich dir äußerst dankbar, dass du ein besseres Beispiel gefunden hast als ich es bis jetzt getan habe. Ich habe den Code bis jetzt lediglich kurz überflogen, dennoch er macht einen verständlichen Eindruck auf mich. Sollte ich noch Fragen dazu haben, so hoffe ich, dass ich mich diesbezüglich an dich (und alle anderen im Forum) wenden kann.

Womit wir schon beim 1. Punkt wären...
- Entspricht in von dir genannten Beispiel die "With"-Funktion im Sub "GetValues" meinem füllen des Kombinationsfeldes mit den Daten der Datenbank?
Kann ich es auf diese Weise implementieren oder spricht etwas dagegen?

Vielen Dank im Voraus und nochmals Entschuldigung,
Bernhard
 
Hallöle,

ja, die GetValues-Prozedur füllt die Form mit den Daten. Statt der With-Schleife könnte man im Beispiel auch schreiben:

Code:
      Form1.txtVName.Text = GetText(Rs.Fields("VName"))
      Form1.txtNName.Text = GetText(Rs.Fields("NName"))
      'usw.

Deshalb nimmt man da eine With-Schleife, da der Code dadurch übersichtlicher wird.

Grüsse
ronaldh
 
Aaaah dankeschön ronaldh!

Damit hast du mir schon ERHEBLICH weitergeholfen! ;)

Doch 2 Sachen hätte ich noch:

1. Wieso kommt im Beispiel keine Deklaration "Dim ... As Workspace" vor? Und was bezweckt eben diese

2. Im Beispiel heißt es in einer Kommentarzeile anfangs:
' Es muss ein Verweis auf 'Microsoft ActiveX Data Objects 2.5 Library' gesetzt werden.
Wieso finde ich die Option in VB 6.0 nicht? Ich finde im Menü "Weitere Steuerelemente" lediglich den Eintrag "Microsoft ActiveX Upload Control" und um diese kann es sich ja kaum handeln.

Beste Grüße,
Bernhard
 
Zu 1.:

Wie, Dim ... as WorkSpace? Das verstehe ich nicht. Wozu sollte das gut sein?

Zu 2.:
Unter Projekt/Verweise findest Du den entsprechenden Verweis. Dies muss natürlich nicht zwangsläufig die Version 2.5 sein, Du hast auf Deinem Rechner mit Sicherheit neuere Versionen drauf (2.7 oder 2.8). Im Zweifelsfall solltest Du da die neueste Version nehmen.

Grüsse
ronaldh
 
Wunderbar, hab den entsprechenden Verweis gefunden! Dankeschön!!

Zum Thema Workspace: hier ein Beispiel
Ich habe eigentlich auf ungewöhnlich vielen Seiten meiner Recherche so eine Deklaration wie in diesem Beispiel entdeckt.

Meiner Meinung nach wird damit die Datenbank als Arbeitsbereich deklariert und von dort aus kann sie ebenfalls geöffnet, abgerufen und bearbeitet werden aber Genaueres weiß ich darüber nicht, drum die Frage was der Unterschied zwischen der Methode deinem Beispiel und der in meinem Beispiel ist.

Grüße Bernhard
 
Im Grunde lädst Du Dir damit MS-Access direkt in Dein VB-Programm, während Du mit dem in ActiveVB genannten Beispiel direkt auf die Datenbank zugreifst. Mit Excel macht man das auf diese Weise, um direkt auf Excel-Tabellen zugreifen zu können.

Bei Access ist es aber eindeutig eleganter, direkt auf die Datenbank zu gehen, und nicht den Umweg über Access zu nehmen. Das ist nicht nur erheblich schneller, es hat auch den Vorteil, dass Dein Programm auch auf Rechnern läuft, auf denen MS-Office mit Access nicht installiert ist (das geht sonst nicht).

Access ist bis zu einem gewissen Grade SQL-fähig, so dass man bei direktem Zugriff wesentlich flexibler ist.

Aus diesem Grund hatte ich zunächst nicht verstanden, was Du willst, weil diese Vorgehensweise doch eher unüblich ist.

Wie gesagt, beim Zugriff auf eine Excel-Tabelle hast Du nicht viel andere Möglichkeiten, aber bei Access ist das nicht so sinnvoll.

Grüsse
ronaldh
 

Neue Beiträge

Zurück