Hallo @all!
Ich habe eine MS-Access-DB eingerichtet, die aus vier Tabellen
besteht, die miteinander über ein Feld verknüpft sind.
Wie kann ich in die Datenbank/Tabellen/Felder schreiben und wie
wieder auslesen? Gibt es da einen Code zum Anschauen?
Welche Alternativen gibt es unter Windows, mit vernünftigen DB-Frontend?
MS-Access Datenbank schreiben und lesen
MS-Access Datenbank schreiben und lesen
Mit Ostsee-Grüßen
René
René
Antwort unter www.purearea.net gefunden
Anbei der Code zur Abfrage. Nach einigem Probieren ging es dann....
; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb
;Autor logan5, 30. Nov 2002
If InitDatabase()
result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")
;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------
If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf
;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------
Abfrage$="Select * from stratab"
;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------
OpenConsole()
;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------
If DatabaseQuery(Abfrage$)
;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------
While NextDatabaseRow()
;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------
ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------
Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)
Wend
Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf
CloseDatabase(0)
CloseConsole()
EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb
;Autor logan5, 30. Nov 2002
If InitDatabase()
result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")
;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------
If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf
;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------
Abfrage$="Select * from stratab"
;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------
OpenConsole()
;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------
If DatabaseQuery(Abfrage$)
;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------
While NextDatabaseRow()
;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------
ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------
Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)
Wend
Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf
CloseDatabase(0)
CloseConsole()
EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Mit Ostsee-Grüßen
René
René
Antwort unter www.purearea.net gefunden
Anbei der Code zur Abfrage. Nach einigem Probieren ging es dann....
; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb
;Autor logan5, 30. Nov 2002
If InitDatabase()
result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")
;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------
If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf
;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------
Abfrage$="Select * from stratab"
;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------
OpenConsole()
;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------
If DatabaseQuery(Abfrage$)
;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------
While NextDatabaseRow()
;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------
ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------
Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)
Wend
Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf
CloseDatabase(0)
CloseConsole()
EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb
;Autor logan5, 30. Nov 2002
If InitDatabase()
result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")
;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------
If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf
;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------
Abfrage$="Select * from stratab"
;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------
OpenConsole()
;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------
If DatabaseQuery(Abfrage$)
;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------
While NextDatabaseRow()
;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------
ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------
Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)
Wend
Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf
CloseDatabase(0)
CloseConsole()
EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Mit Ostsee-Grüßen
René
René