PDA

Vollständige Version anzeigen : Probleme mit VBA auf unterschiedlichen PCs


No Name
21.04.2011, 11:27
Hallo zusammen,

habe eine DB in FE und BE aufgeteilt. Die FE Datei habe ich mehreren PCs liegen. Bei den meisten PCs funktioniert alles wunderbar.
Nur einer zickt!
Ich habe jetzt schon länger verzweifelt nach einer Lösung gesucht...

Das ist der VBA-Code wo ich die Probleme habe:
'Mahnungen drucken
Set rs = CurrentDb.OpenRecordset("qryMah")
Do While Not rs.EOF
rs.Edit
rs!vkabr_gemahnt = True
rs.Update
Filter = "kun_nr = " & rs!kun_nr


'Mahnung als PDF speichern
strBericht = "repMah"
strWHERE = Filter
strDatei = "M:\...\Mahnungen\ " & rs!kun_nr & "_" & Date & ".pdf"
DoCmd.OpenReport strBericht, acViewPreview, , strWHERE, acHidden
DoCmd.OutputTo acOutputReport, strBericht, acFormatPDF, strDatei, False
DoCmd.Close acReport, strBericht
DoCmd.OpenReport bericht, acNormal, Filter ------>> Debugger zeigt immer die Zeile als Fehlerhaft an!?

rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Ich bekomme dann die Fehlermeldung: Das Microsoft Office Access-Datenbankmodul konnte das Objekt 'kun_nr = 10012' nicht finden. Stellen Sie sicher, dass das Objekt vorhanden ist und dass die Namens- und Pfadangaben richtig eingegeben wurden.

Wie gesagt das funktioniert auf allen PCs außer einem.
Ich habe die VBA-Verweise bereits verglichen. Und die PCs haben auch alle XP/Office 2007.

Kann mir irgendjemand helfen?

maikek
21.04.2011, 11:37
Hallo,
eigentlich erwartet Access an der Stelle einen Filternamen (Abfrage). Was du hast, ist die WHERE-Condition. Langer Rede kurzer Sinn: da muss ein Komma mehr hin.
DoCmd.OpenReport bericht, acNormal, , Filter
maike

Micha_DU
21.04.2011, 11:50
wobei alle anderen PC´s die Fehlermeldung eigentlich auch haben sollten...

Aber was anderes... was passiert wenn qryMah keine Daten liefert, sprich keine Mahnungen erzeugt werden sollen? Dann knallt es in deinem Code auch... du solltest vor Beginn der Schleife mal rs.BOF überprüfen.

rainer176
26.04.2011, 19:45
Ich hatte kürzlich mit einer Datenbank ähnliche Probleme. Ich habe dann eine neue leere Datenbank erstellt und alle Abfragen, Formulare Module usw. in die neue Datenban kopiert und dann war das Probelm behoben

Unreg5
26.04.2011, 20:24
Vielleicht hilft DAO .....

Dim rs As DAO.Recordset

(Verweis sollte natürlich auch gesetzt sein)


mfg
Unreg5

ebs17
26.04.2011, 20:40
Filter = "kun_nr = " & rs!kun_nr
' ...
DoCmd.OpenReport bericht, acNormal, Filter ------>> Debugger zeigt immer die Zeile als Fehlerhaft an!?
Ich bekomme dann die Fehlermeldung: Das Microsoft Office Access-Datenbankmodul konnte das Objekt 'kun_nr = 10012' nicht finden. Stellen Sie sicher, dass das Objekt vorhanden ist und dass die Namens- und Pfadangaben richtig eingegeben wurden.
DoCmd.OpenReport Berichtsname[, Ansicht][, Filtername][, Bedingung]
Filtername: Ein Zeichenfolgenausdruck, der den gültigen Namen einer Abfrage der aktuellen Datenbank angibt
Bei Filtername wird also der Name einer gespeicherten Abfrage (= Objekt) verlangt, nicht ein Filterausdruck. Wenn Du wie von maike vorgeschlagen ein Komma einfügst und somit Filter als Bedingung verwendest, sollte das Ganze entspannter laufen.