Juli 12, 2020, 19:01:54

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Probleme mit Access und Visual Basic

Begonnen von Redakteurin, Mai 05, 2010, 12:54:58

⏪ vorheriges - nächstes ⏩

Redakteurin

Hallo zusammen,

Ich bin langsam verzweifelt, weil das Access einfach nicht so macht, wie ich das gerne hätte. Ich kenne mich auch nicht so super damit aus, würde mich als fortgeschrittenen Office-Anwender mit minimalen Access-Kenntnissen bezeichnen.

Mein Chef hat eine Datenbank mit Access und 2-3 Makros, die einwandfrei unter Access 97 und Windows 2000 läuft.
Dann hat er sie auf die auf Windows 7 und Access 2007 übertragen und jetzt kommt eine Fehlermeldung, die wir nicht abstellen können:

Wenn ich einen Druck starten will, dann hängt sich das Access komplett auf, Word öffnet (invisible). Wenn ich Access dann abbreche, erscheint über Word die Fehlermeldung "Fehler: Das Microsoft Office Access-Datenbankmodul findet die Eingabetabelle oder Abfrage "rucktabll" nicht."

Die Eingabetabelle heißt aber "Drucktabelle". Aus irgendnem Grund schneidet er den ersten und letzten Buchstaben ab.

Anschließend hab ich über Visual Basic die "Drucktabelle" in "nDrucktabellen" umbenannt, weil ich dachte, wenn er die Buchstaben abschneidet, dann kann ich viell. so auf die eigentliche Drucktabelle kommen.

Dann kam folgende Fehlermeldung vom Visual Basic: "Laufzeitfehler '5922': Word konnte die Datenquelle nicht öffnen."

Ich schicke im Anhang mal die - so glaube ich - entscheidende Visual Basic Datei.

Ich wäre über alle Vorschläge überaus dankbar!!!





[Anhang gelöscht durch Administrator]

DF6GL

Hallo,


mhmm,  allein am geposteten Code sieht man nicht den Grund... (auch wenn da noch andere fragwürdige Codestellen drin sind)

Setz mal selber einen Haltepunkt an den Anfang des Codes und fahre mit Einzelschritt weiter. Prüfe bei jeder Codezeile, wo der Fehler genau auftritt und ob der Inhalt der Variablen den Erwartungen entspricht.


Redakteurin

Mai 05, 2010, 13:58:43 #2 Letzte Bearbeitung: Mai 05, 2010, 16:36:29 von Redakteurin
Hallo nochmal lieber Franz vom Bodensee :)

Ich habe den gesamten VB-Code noch einmal mit Haltepunkten überprüft. Der Fehler ist - meiner Meinung nach - in folgender Zeile:

    .ActiveDocument.MailMerge.OpenDataSource Name:=Datenbankpfad, _
      ReadOnly:=False, LinkToSource:=True, _
      AddToRecentFiles:=False, Revert:=False, _
      Connection:= _
      "DSN=Drucken;DBQ=" & Datenbankpfad, SQLStatement:="SELECT * FROM Drucktabelle", SQLStatement1:=""
      '"DSN=Drucken;DBQ=E:\Datenbank\Maus97.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;" _
      ', SQLStatement:="SELECT * FROM `Aktionsdruck`", SQLStatement1:=""

Hierbei geht es mir konkret um die Variable "Drucktabelle".

Will ich einen Druck aus Access starten, öffnet Word die Vorlage nicht mit der Begründung: "Word findet das Dokument 'rucktabell' nicht."

Wenn ich die Variable verändere, z.b. in "xDrucktabellex", erklärt mir Word ebenfalls mit der Fehlermeldung "Laufzeitfehler: Word konnte die Datenquelle nicht öffnen."

Im Übrigen funktioniert die Drucktabelle einwandfrei, wenn ich von Word aus versuche, einen Seriendruck zu starten.

Was könnte ich an der Zeile verändern?
Wieso funktioniert das mit der alten Officeversion einwandfrei? Könnte es z.B. an berechneten Feldern liegen?

Würde mich freuen, wenn du mir helfen könntest!
Grüße an den Bodensee






[Anhang gelöscht durch Administrator]

Redakteurin

Mai 05, 2010, 14:08:18 #3 Letzte Bearbeitung: Mai 05, 2010, 16:37:21 von Redakteurin
test

DF6GL

Hallo,


mhmm, ich kann das halt hier nicht nachbasteln...

Was mir auffällt, dass im "alten" SQL-Statement die Tabelle in Hochkommata angeben ist, vielleicht solltest Du versuchen, im akt. SQL-String den Tabellennamen auch in Hochkommata einzuschliessen:

"DSN=Drucken;DBQ=" & Datenbankpfad, SQLStatement:="SELECT * FROM 'Drucktabelle'"

Redakteurin

Hallo DF6GL,

Danke für den Tipp. Das Problem löst sich dadurch nicht. Es kommt weiterhin eine Fehlermeldung "Laufzeitfehler '5922': Word konnte die Datenquelle nicht öffnen."

Wenn ich dann auf Debuggen gehe, markiert er mit Geldb genau die Codestelle, die ich bereits gepostet hab.

Scheint kniffeliger zu sein. Sonst noch Vorschläge? ;-)

Grüße aus Karlsruhe

accessundich

---
Ich stelle keine komischen Fragen: Ich bin komisch.

Redakteurin

Hallo zusammen.

Danke Franz, der Tipp mit den Hochkommatas hat mich auf die richtige Lösung gebracht.

SQLStatement:="SELECT * FROM Drucktabelle war die ursprüngliche Befehlszeile,

Fehlermeldung: rucktabell konnte nicht gefunden werden.

anschließend habe ich

SQLStatement:="SELECT * FROM 'Drucktabelle" ausprobiert

Fehlermeldung: word kann die Datenquelle nicht öffnen.

dann habe ich entdeckt, dass in

"DSN=Drucken;DBQ=E:\Datenbank\Maus97.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;" _
      ', SQLStatement:="SELECT * FROM `Aktionsdruck`", SQLStatement1:=""

Aktionsdruck in diesen AKzent-Anführungszeichen waren. Also habe ich kurzerhand das Statement auf

SQLStatement:="SELECT * FROM `Drucktabelle`" ausprobiert.

Jetzt funktioniert der Seriendruck in der neuen DB endlich.

Vielen Dank und bis demnächst!

Milvus

Folgendes:

In der alten DB die Verweise checken und in der neuen ggf. setzen, evtl. sind da auch Leere drin.

Nur so in Blaue getippt

DF6GL

Hallo,


ZitatSQLStatement:="SELECT * FROM `Drucktabelle`" ausprobiert



Na, das ist doch genau das, was ich Dir vorher geschrieben hatte.. ::) 8)

Beaker s.a.

Hallo Franz,
Nicht ganz
?asc("'")
39
?asc("`")
96
?chr(39)
'
?chr(96)
`

Ist mir allerdings noch nie untergekommen.
Kann das mit Regionaleinstellungen oder unterschiedlichem Zeichensatz
zusammenhängen?
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

PhilS

Nur mal dumm gefragt: Ihr habt gesehen, dass der ursprüngliche Thread von 2010 ist und es eigentlich auch keine neue Frage dazu gegeben hat?
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

DF6GL

Hallo,

mhmm,  nein, habe ich nicht bemerkt.. Ich hab nur auf das Posting-Datum von Milvus geschaut ...   :o



Trotzdem @Beaker s.a.:


Ich glaube, dass das eine Fehlinterpretation ist und das Ascii-Zeichen 96   im realen SQL-Statement nicht vorkommt.

Der aufgetretene Fehler lag vermutlich am fehlenden abschließenden Hochkomma:

ZitatSQLStatement:="SELECT * FROM 'Drucktabelle" ausprobiert



Ich denke, wir können diesen alten Thread wirklich ad acta legen.. :) ;)