Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Kiwi_31 am Juli 17, 2012, 09:42:22

Titel: Laufzeit Fehler 3464
Beitrag von: Kiwi_31 am Juli 17, 2012, 09:42:22
Guten Morgen,

Beim Schreiben eines Programm, bin ich auf folgende Fehlermeldung gestoßen:

Zitat:

Laufzeitfehler 3464 - Kriterienausdruck unverträglich   


Mein Code ist wiefolgt:

Code:
   
'Deklaration

Dim db As DAO.Database
Dim BelegNummer As Double
Dim rstMIP_eKV As DAO.Recordset


'Belegnummer eingeben

BelegNummer = InputBox("Geben Sie bitte eine Belegnummer ein")


'Auf Sonder/Leerzeichen oder Text prüfen

If IsNumeric(BelegNummer) Then
Else: MsgBox ("Entweder Sonderzeichen, Leerzeichen oder Text in der Belegnummer")
End If

'DAO

Set db = CurrentDb()
Set rstMIP_eKV = db.OpenRecordset("select * from T_HM1KOP where T_HM1KOP.VORGNR = 'BelegNummer'", dbOpenDynaset)


End Sub


Könnte mir vielleicht jemand Helfen ?  :)
Titel: Re: Laufzeit Fehler 3464
Beitrag von: DF6GL am Juli 17, 2012, 10:10:34
Hallo,


klar doch...


Warum ist die Variable "Belegnummer" vom Datentyp DOUBLE?
Die Eingabe und Überprüfung eines Wertes mittels der Inputbox ist tricky und fehlerträchtig.
Wenn schon Prüfung der Belegnummer, dann im "Fehlerfall" auch eine Konsequenz vorsehen.
Die Where-Condition im SQL-String ist falsch aufgebaut und muss so lauten:


Dim Belegnummer as String ' TEXT , nicht DOUBLE !

Set rstMIP_eKV = db.OpenRecordset("select * from T_HM1KOP where T_HM1KOP.VORGNR = '" & BelegNummer & "'",  dbOpenDynaset)


Voraussetzung: "T_HM1KOP.VORGNR" ist in der Tabelle (auch) vom Datentyp TEXT
Titel: Re: Laufzeit Fehler 3464
Beitrag von: Kiwi_31 am Juli 17, 2012, 10:31:22
Hallo,

Die Variable Belegnummer ist von Datentyp String, habe für Testzwecken mal kurze geändert.

Wie kann ich jetzt noch verursachen das nach der DAO abfrage eine MsgBox ausgeben wird ??

Grüße
Kiwi_31
Titel: Re: Laufzeit Fehler 3464
Beitrag von: DF6GL am Juli 17, 2012, 10:54:32
Hallo,

??


Msgbox rstMIP_eKV![DeinGewünschtesFeld]
Titel: Re: Laufzeit Fehler 3464
Beitrag von: Kiwi_31 am Juli 17, 2012, 10:57:52
Ich weiß wie man eine Msgbox ausgibt, das Problem ist das ich will das sobald Belegnummer = Vorgnr ist eine MsgBox erscheint "Belegnummer vorhanden" aber wenn das nicht der fall soll diese Msgbox nicht auftauchen !
Titel: Re: Laufzeit Fehler 3464
Beitrag von: Kiwi_31 am Juli 17, 2012, 11:08:16
Hat sich erledigt, habe es herausgefunden :D

Danke !
Titel: Re: Laufzeit Fehler 3464
Beitrag von: DF6GL am Juli 17, 2012, 11:10:18
Hallo,

If rstMIP_eKV.Recordcount >0 Then
Msgbox " VORGNR   schon vorhanden"
End If
Titel: Re: Laufzeit Fehler 3464
Beitrag von: MzKlMu am Juli 17, 2012, 12:17:13
Hallo,
ZitatHat sich erledigt, habe es herausgefunden
Bist Du sicher, dass Du es herausgefunden hast?

http://www.office-loesung.de/ftopic536634_0_0_asc.php (http://www.office-loesung.de/ftopic536634_0_0_asc.php)