Verbindung zu einer MS Access Datenbank

Sammlung von Vorlagen und Hilfestellungen
walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Verbindung zu einer MS Access Datenbank

Beitrag von walde » 22.04.2010, 23:46

Hallo Zusammen,

 

Die Beispieldatei "Test Access DB.ZIP" enthält 2 Dateien. Die 1. Datei ist ein *.PDF Formular mit dem sich eine Datenverbindung zu einer Microsoft Access Datenbank hestellen lässt. Mittels einer Suchfunktion kann in der Datenbank nach bestimmten Datensätzen gesucht werden. Die 2. Datei ist eine Microsoft Access Testdatenbankdatei (*.MDB). Diese enthält eine Tablle mit 3 Spalten und ca. 2000 Werten.

Es ist nicht zwingend erforderlich die *.MDB Datei zu verwenden, da Ihr euch eine eigene Microsoft Access Datenbank mit folgenden Daten (für das Test *.PDF Formular) selber erstellen könnt:
Tabellenname = Adressen.
Adressen Spalten = ID, Vorname, Nachname.

Meine *.MDB Datei befindet sich unter dem Pfad "C:\db1.mdb". Diesen könnt Ihr im Test Formular (*.PDF) im LiveCycle Designer unter "Datenansicht (Fenster - Datenansicht) -Datenverbindung (mit rechter Maustaste anklicken) - Verbindungseigenschaften - Weiter". Nun kommt eine Meldung "Datei ... nicht gefunden". Diese könnt Ihr mit dem Klick auf Abbrechen schließen. Jetzt könnt Ihr unter "Verbindungszeichenfolge" die Zeichenfolge "C:\db1.mdb" durch die Zeichenfolge des Pfades ersetzen, unter dem sich Eure *.MDB Datei befindet.

Alternativ könnt Ihr die Beilspieldatei "DB1.MDB" auch einfach unter dem Laufwerk "C:\" abspeichern.

Wenn alles soweit klappt könnt Ihr das Formular öffnen und durch den Klick auf die "Access Datenbank öffnen" Taste eine Verbindung zu Eurer Access Datenbank hestellen.
Der Rest ist denke ich selbserklärend.

Bei Fragen oder Fehlern :-) stehe ich hier im Forum zur verfügung.

 

Gruß,

 

Walde

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

F2k
Beiträge: 26
Registriert: 11.02.2010, 08:08

Verbindung zu einer MS Access Datenbank

Beitrag von F2k » 26.04.2010, 12:41

Hallo Walde,

Eine super Sache. Herzlichen Dank. Das hat mir sehr geholfen.

Info für andere:

Um einzustellen, dass die Datenbank beim Öffnen des Dokuments nicht geladen wird muss man in der XML-Quelle  "delayedOpen" auf 1 setzen:
[fontsize=2]
[/fontsize]
[fontsize=2]
<[/fontsize][fontsize=2][fontsize=2]connect[/fontsize][/fontsize][fontsize=2] [/fontsize][fontsize=2][fontsize=2]delayedOpen[/fontsize][/fontsize][fontsize=2]="[/fontsize][fontsize=2][fontsize=2]1[/fontsize][/fontsize][fontsize=2]" [/fontsize][fontsize=2][fontsize=2]timeout[/fontsize][/fontsize][fontsize=2]="[/fontsize][fontsize=2][fontsize=2]15[/fontsize][/fontsize][fontsize=2]">

Viele Grüße[/fontsize]
[fontsize=2]
[/fontsize][fontsize=2][/fontsize][fontsize=2]
[/fontsize]

kruse
Beiträge: 6
Registriert: 07.04.2010, 08:01

Verbindung zu einer MS Access Datenbank

Beitrag von kruse » 08.05.2010, 16:26

Hallo Walde,

danke ersteinmal für Deine Beispieldatei. Ich würde gerne diese dahin ändern das ich ein Dropdown mit drin habe (s. Anlage) Leider geht das nicht so einfach - könntest Du mir da helfen.

LG Frank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Verbindung zu einer MS Access Datenbank

Beitrag von walde » 10.05.2010, 14:25

Hallo kruse,

 

Habe die Datenbankanbindung im DropDown als eine eigenständige Verbindung erstellt. Dies stellt sicher, dass eine bereits offenen Datenbank nicht versehentlich geschlossen wird oder sogar ungewollt Änderungen übernommen werden. Die DropDown Liste wird vor dem Öffnen des DropDowns mit Werten gefüllt. Dies hat den Vorteil, dass die Werte immer aktuell aus der DB abgefragt werden. In der Beispieldatei sind es ca. 2000 Werte, was keine besonders grosse Probleme bei der Abfrage bereitet. Bei einer größeren Anzahl an Werten ist es sinnvoller die Suchfunktion in der Beispieldatei zu benutzen, da die Performance des Formulars durch ein DropDown leiden kann.

P.S.:

Die Auswahl des DropDowns können Sie mit einer Direktsuche (Beispieldatei aus dem 1. Beitrag) verknüpfen.

 

Gruß,

 

Walde

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

kruse
Beiträge: 6
Registriert: 07.04.2010, 08:01

Verbindung zu einer MS Access Datenbank

Beitrag von kruse » 10.05.2010, 16:11

Hallo Walde,

danke für Deine schnelle Antwort. Der Lösungsansatz ist genau richtig, leider arbeitet das ganze nicht mehr. Das Dropdown versucht tatsächlich eine Verbindung zu erzeugen, es wird aber nicht mehr mit Datensätzen gefühlt. Auch ist eine SUCHE nicht mehr möglich. Einb trennen zur DB ist möglich. Ich komme da nicht weiter, wäre super wenn Du noch einen Blick drauf wirfst.

Danke LG Frank

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Verbindung zu einer MS Access Datenbank

Beitrag von walde » 13.05.2010, 16:31

Hallo kruse,

 

Wenn ich die Datenbankdatei aus dem 1. Beitrag verwende (db1.mdb), habe ich keine Probleme mit den Datenbankanbindungen oder sonstiges.

Alternativ können Sie die Verbindung zur der Access Datenbank unter LCD nochmal erstellen.

 

Gruß,

 

Walde

kruse
Beiträge: 6
Registriert: 07.04.2010, 08:01

Verbindung zu einer MS Access Datenbank

Beitrag von kruse » 13.05.2010, 18:53

Hallo Walde,

ja das wars. NachnameDropDown einfach noch einmal die Verbindung herrstellen. Jetzt ist aber das Problem das der Wert aus dem DropDown, wenn ich einen Datensatz gewählt habe, nicht in die drei oberen Feldern übernommen wird. Ich möchte einen Nachnamen im DropDown auswählen und der gesamte Datensatz soll obern erscheinen, so wie das in deinem Formular mit den Textfelder ging. Walde ich danke Dir und hoffe Du kannst mit meiner Ausführung etwas anfangen. Schönen Vatertag noch.

Danke für Deine Geduld

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Verbindung zu einer MS Access Datenbank

Beitrag von walde » 13.05.2010, 19:43

Hallo kruse,

 

Sie können den Wert aus dem DropDown auch für eine Direktsuche verwenden, wie ich schon im Beitrag vom 10.05.2010 schrieb. Siehe die geringfügig abgeänderte Beispieldatei.

 

Gruß,

 

Walde
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

kruse
Beiträge: 6
Registriert: 07.04.2010, 08:01

Verbindung zu einer MS Access Datenbank

Beitrag von kruse » 13.05.2010, 20:49

Dickes Danke, echt Super.

F2k
Beiträge: 26
Registriert: 11.02.2010, 08:08

Verbindung zu einer MS Access Datenbank

Beitrag von F2k » 07.06.2010, 11:47

Hallo Walde und Co,

Bin gerade wieder dabei ein wenig mit einer Datenbank zu basteln. In einem Formular habe ich jetzt verschiedene Felder: Textfeld, Numerisches Feld. Jetzt gebe ich bspw. in beide Felder Zahlen ein: 123. Wenn ich diese jetzt über:[fontsize=2][fontsize=2]
[fontsize=2]
[/fontsize]

Code: Alles auswählen

xfa.record.Datenverbindung.resolveNode("Feld0").value = Textfeld.rawValue;

xfa.record.Datenverbindung.resolveNode("Feld1").value = NumerischesFeld.rawValue;
in die DB einpflege, so wird nur der Wert aus dem Textfeld übergeben. Daraus schliesse ich, dass nur Strings übergeben werden können?

Eine Eingabe wie:

Code: Alles auswählen

xfa.record.Datenverbindung.resolveNode("Feld0").value = "123";
funktioniert, aber eine Eingabe wie:

Code: Alles auswählen

xfa.record.Datenverbindung.resolveNode("Feld0").value = 123;
nicht. Auch kann ich keine Variablen mit Integern übergeben

Code: Alles auswählen

var Zahl = 12;

xfa.record.Datenverbindung.resolveNode("Feld0").value = zahl;
Gibt es da irgendwelche Funktionen, mit denen ich Integer in String usw. konvertieren kann (à la

Code: Alles auswählen

var stringzahl = integerToString(zahl)
). In den LiveDocs finde ich dazu nur valueAsString, was nichts bringt. Kann mir da vlt jemand weiterhelfen?
In der Access-DB habe ich Feld0 und Feld1 den Typ Zahl zugeordnet.
Viele Grüße und schoneinmal herzlichen Dank

F2k[/fontsize]

[fontsize=2]

[/fontsize][/fontsize][fontsize=2][/fontsize][fontsize=2][/fontsize]

Antworten