Und schon habe ich das nächste Problem:
Ich habe ein Formular mit Kundenadressen. Bei einem Klick auf den Kundennamen (Steuerelement: =[KName1] & " " & [KName2]) soll die gesamte Kundenadresse in eine neue Tabelle (Kundenkopie) geschrieben werden.
Dabei erhalte ich eine Fehlermeldung (siehe Bild). Die erste Zeile
- Private Sub Text71_Click() –
ist im Debugger gelb unterlegt.
Private Sub Text71_Click()
Dim MKSort As String
Dim MKunde1 As String
Dim MKunde2 As String
Dim MPlZ As String
MKSort = [KSort]
MKName1 = [KNAME1]
MKName2 = [KNAME2]
MPlZ = [KPLZ]
If MsgBox("Ist die Auswahl richtig ? " & MKSort & " " & MKName1 & " " & MKName2, vbYesNo) = vbYes Then
Call Adressenwahl(MKSort, MPlZ)
End If
End Sub
Da ich den Code aus einer ähnlichen Anwendung übernommen habe, komme ich jetzt nicht weiter. Ich finde auch nirgends (also, Tabellen, Formulare, Abfragen oder Berichte etwas zu ,,Adressenwahl"
Gibt es Hilfe?
Hallo,
ich befürchte, Du versuchst, durch Sumpf zu waten...
Warum
"soll die gesamte Kundenadresse in eine neue Tabelle (Kundenkopie) geschrieben werden." ?
"Adressenwahl" dürfte eine Sub-Prozedur sein und sich in einem Standardmodul befinden....Benutz doch mal im VBA-Editor die Suche im gesamten Projekt (bearbeiten/suchen/gesamtes Projekt) ...
Hi,
ZitatDa ich den Code aus einer ähnlichen Anwendung übernommen habe,
dann würde ich dort mit der Suche nach der fehlenden Prozedur anfangen. ;-)
sowohl in der "alten" Anwendung als auch in der jetzigen, gibt es den Ausdruck "Adressenwahl" nur einmal, nämlich den in meinem 1. Posting erwähnten Code.
Ich finde in der "alten" Datenbank auch nirgends etwas zu Adressenwahl.
Zur Information, warum ich das mache:
- wenn ich auf Reisen gehe, dann will ich die Kunden anklicken, die ich besuchen will. Habe ich mehrere Namen angeklickt, werden diese in die Tabelle Kundenkopie geschrieben und über ein weiteres Ereignis (Button im Formular) will ich dann die Adressen dieser Kunden ausdrucken. Das geschieht mit dem Code:
Private Sub KundenauswahlDruck_Click()
On Error GoTo Err_KundenauswahlDruck_Click
Dim stDocName As String
stDocName = "Kundenauswahl"
DoCmd.OpenReport stDocName, acPreview
Exit_KundenauswahlDruck_Click:
Exit Sub
Err_KundenauswahlDruck_Click:
MsgBox Err.Description
Resume Exit_KundenauswahlDruck_Click
End Sub
Das wiederum klappt, denn ich habe in "Kundenkopie" einmal per Hand einen Namen eingegeben, der "Bericht", also die Adresse erscheint und kann gedruckt werden
Hallo,
ZitatIch finde in der "alten" Datenbank auch nirgends etwas zu Adressenwahl.
Hast Du denn nun mal in VBA-Editor mit Bearbeiten/Suchen das "gesamte Projekt" nach dieser Prozedur durchsucht??
Zum Zweiten ist die Kopiererei sehr wahrscheinlich wie durch die Brust in's Auge geschossen...Es würde reichen, in der Kunden-Tabelle einfach ein Ja/Nein-Feld als Markierer mitzuführen und für die Druckerei zu verwenden.
Hallo Franz,
in meinem ACC-XP heisst das dann wohl "aktuelles Projekt". Und da gibt es nur einen einzigen Eintrag (siehe mein Code)
Das mit dem Ja/Nein klingt verlockend und überzeugend, ich probiere das mal, bin mir aber sicher, dass ich doch noch mit Fragen kommen werde
Hallo,
und nochmal: Du hast aber schon in der "ähnlichen Anwendung" gesucht...?
jaaaaaaa
Sorry, ich muss mich korrigieren: es gibt in dere "alten" Anwendung doch noch einen Vermerk mit "Adressenauswahl". Da steht dann Folgendes:
Public Sub Adressenwahl(MKSort, MPlZ)
Dim db As Database, rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Kundenkopie")
rs.AddNew
rs![KSort] = MKSort
rs![KPLZ] = MPlZ
rs.Update
rs.Close
End Sub
Wenn ich das jetzt in mein aktuelles Projekt kopiere, wo muss ich es einsetzen?
... noch etwas dazu:
ichhabe analog zu der alten Anwendung den o.g. Code unter "allgemein" eingefügt. Klicke ich nun auf den Kundennamen, dann wird gefragt, ob dieser richtig ist. Ich klicke auf JA, und dann kommt die hier beigefügte Fehlermeldung...
Ich habe aber den Eindruck, das Ende ist nah!!!
Deklariere explizit "AS DAO.Database" und "AS DAO.Recordset" und füge einen Verweis auf die zugehörige Objektbibliothek hinzu.
Die Public Sub solltest du in einem allgemeinen Modul speichern.
PS:
Eigentlich brauchst du die Prozedur ja gar nicht mehr, wenn du die Kundenauswahl auf "Anhaken" umstellst.
Ich habe Deine Änderung gemacht, vorher auch schon unter Allgemein gespeichert.
Nun kommt aber diese Fehlermeldung
Zitat von: Axel18 am Oktober 29, 2014, 17:08:22Ich habe Deine Änderung gemacht, vorher auch schon unter Allgemein gespeichert.
Damit kann ich nichts anfangen, entscheidend ist, dass du den Code in einem allgemeinen Modul speicherst und nicht in einem Klassenmodul.
ZitatNun kommt aber diese Fehlermeldung
Du hast vermutlich den Verweis nicht gesetzt? Gehe im VBA-Editor auf Extras -> Verweise und setze den Haken bei der zugehörigen DAO-Bibliothek. Bei A2010 ist das die "Microsoft Office 14.0 Database Engine Object-Library".
Ich habe einfach in der alten Anwendung nachgeschaut, und diesen Verweis auch nun in der neuen Anwendung übernommen.
Trotz allem kommt die Fehlermeldung und in der zweiten Zeile wird
- db As DAO.Database -
blau unterlegt
Den Code kennen wir nun schon, zeig doch lieber mal einen Screenshot von den Verweisen.
Meinst Du das hier ?
PS:melde michbis morgen ab !
Ja, das meinte ich.
Es fehlt, wie vermutet, der Verweis auf die DAO-Bibliothek.
Wenn du etwas nicht verstehst oder nicht findest, musst
du nachfragen. Einfach ignorieren bringt dich nicht weiter.
Da hast Du recht, vermutlich habe ich das nicht korrekt verstanden.
Also frage ich jetzt: wie und wo bringe ich den Verweis an?
Wie ich schon schrieb, ich hatte in der alten Anwendung mir das angeschaut (die hat ja funktioniert) und das dann in der aktuellen Anwendung "eingebaut", aber offenbar fehlt doch noch was!
Hallo,
Zitatwie und wo bringe ich den Verweis an?
ganz einfach, in der Liste suchen und dann anhaken.
Wie bereits gesagt:
Zitat von: MaggieMay am Oktober 29, 2014, 17:16:34Gehe im VBA-Editor auf Extras -> Verweise und setze den Haken bei der zugehörigen DAO-Bibliothek.
an alle lieben Helfer:
herzlichen Dank für Eure Bemühungen, die zu einem guten Ende geführt haben. Ich habe in der Tat den Verweis auf die DAO-Bibliothek nicht richtig angehakt. Seitdem klappt es.
Nochmals danke für Eure Hilfe.