Seite 1 von 3

Verbindung zu einer MS Access Datenbank

Verfasst: 22.04.2010, 23:46
von walde
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


Verbindung zu einer MS Access Datenbank

Verfasst: 26.04.2010, 12:41
von F2k
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]

Verbindung zu einer MS Access Datenbank

Verfasst: 08.05.2010, 16:26
von kruse
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

Verbindung zu einer MS Access Datenbank

Verfasst: 10.05.2010, 14:25
von walde
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


Verbindung zu einer MS Access Datenbank

Verfasst: 10.05.2010, 16:11
von kruse
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

Verbindung zu einer MS Access Datenbank

Verfasst: 13.05.2010, 16:31
von walde
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

Verbindung zu einer MS Access Datenbank

Verfasst: 13.05.2010, 18:53
von kruse
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

Verbindung zu einer MS Access Datenbank

Verfasst: 13.05.2010, 19:43
von walde
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

Verbindung zu einer MS Access Datenbank

Verfasst: 13.05.2010, 20:49
von kruse
Dickes Danke, echt Super.

Verbindung zu einer MS Access Datenbank

Verfasst: 07.06.2010, 11:47
von F2k
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]