Neuigkeiten:

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

Mobiles Hauptmenü

Code Fehlermeldung

Begonnen von Axel18, Oktober 29, 2014, 14:36:22

⏪ vorheriges - nächstes ⏩

Axel18

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?


Beste Grüße
Axel

DF6GL

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) ...

MaggieMay

Hi,
ZitatDa ich den Code aus einer ähnlichen Anwendung übernommen habe,
dann würde ich dort mit der Suche nach der fehlenden Prozedur anfangen. ;-)
Freundliche Grüße
MaggieMay

Axel18

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
Beste Grüße
Axel

DF6GL

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.

Axel18

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
Beste Grüße
Axel

DF6GL

Hallo,

und nochmal:  Du hast aber schon in der "ähnlichen Anwendung" gesucht...?

Axel18

Beste Grüße
Axel

Axel18

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?
Beste Grüße
Axel

Axel18

... 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!!!
Beste Grüße
Axel

MaggieMay

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.
Freundliche Grüße
MaggieMay

Axel18

Ich habe Deine Änderung gemacht, vorher auch schon unter Allgemein gespeichert.
Nun kommt aber diese Fehlermeldung
Beste Grüße
Axel

MaggieMay

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".

Freundliche Grüße
MaggieMay

Axel18

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
Beste Grüße
Axel

MaggieMay

Den Code kennen wir nun schon, zeig doch lieber mal einen Screenshot von den Verweisen.
Freundliche Grüße
MaggieMay