Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Axel18 am Oktober 29, 2014, 14:36:22

Titel: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 14:36:22
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?


Titel: Re: Code Fehlermeldung
Beitrag von: DF6GL am Oktober 29, 2014, 14:50:45
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) ...
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 14:56:26
Hi,
ZitatDa ich den Code aus einer ähnlichen Anwendung übernommen habe,
dann würde ich dort mit der Suche nach der fehlenden Prozedur anfangen. ;-)
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 15:09:02
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
Titel: Re: Code Fehlermeldung
Beitrag von: DF6GL am Oktober 29, 2014, 15:15:50
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.
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 15:33:03
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
Titel: Re: Code Fehlermeldung
Beitrag von: DF6GL am Oktober 29, 2014, 15:48:16
Hallo,

und nochmal:  Du hast aber schon in der "ähnlichen Anwendung" gesucht...?
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 16:13:13
jaaaaaaa   
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 16:41:11
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?
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 16:46:20
... 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!!!
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 16:55:27
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.
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 17:08:22
Ich habe Deine Änderung gemacht, vorher auch schon unter Allgemein gespeichert.
Nun kommt aber diese Fehlermeldung
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 17:16:34
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".

Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 18:07:40
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
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 18:16:19
Den Code kennen wir nun schon, zeig doch lieber mal einen Screenshot von den Verweisen.
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 18:56:23
Meinst Du das hier ?


PS:melde michbis morgen ab !
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 19:02:15
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.
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 29, 2014, 19:41:03
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!
Titel: Re: Code Fehlermeldung
Beitrag von: MzKlMu am Oktober 29, 2014, 19:47:16
Hallo,
Zitatwie und wo bringe ich den Verweis an?
ganz einfach, in der Liste suchen und dann anhaken.
Titel: Re: Code Fehlermeldung
Beitrag von: MaggieMay am Oktober 29, 2014, 19:53:21
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.
Titel: Re: Code Fehlermeldung
Beitrag von: Axel18 am Oktober 30, 2014, 10:16:03
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.