Discussion:
Datentyp unverträglich
(zu alt für eine Antwort)
Frank Kötting
2005-12-06 09:20:45 UTC
Permalink
Hallo Access-Freunde,

ich arbeite mit Access 00 und habe folgendes Problem.

Ich habe aus einem Codebuch ""Das Access-VBA Codebook" den untenstehenden
Code herauskopiert und in für mein Anliegen angepaßt.
Also im Grunde nur die Textfeldnamen geändert.
Beim Ablauf des Codes bekomme ich dann folgende Fehlermeldung:

Laufzeitfehler '3464'

Datentypen im Kriterienausdruck unverträglich

Access markiert darauf dann die Zeile: rs.FindFirst
("[ObjektKst]='" & Me.txtvalueKst & "'")

ObjektKst liegt in einer Tabelle und ein Zahlenwert LongInteger
txtvalueKst ist ein ungebundenes Textfeld im Formular

Was habe ich nicht bedacht bzw. falsch gemacht? Würde mich freuen wenn mir
da einer Helfen könnte, da die OnlineHilfe leider auch nicht viel hergibt.

Mfg

Frank Kötting



' Diese Codes stammen aus dem Buch "Das Access-VBA Codebook von
Griesshammer, Michaels und Zerbe
' aus dem Addison - Weseley Verlag
' ----------------------------------------------------------------------------------------------


Private Sub cmdAdd_Click()

Dim rs As DAO.Recordset



Set rs = CurrentDb.OpenRecordset(Me.lstValues _
.RowSource, dbOpenDynaset)

rs.FindFirst ("[ObjektKst]='" & Me.txtvalueKst & "'")

If Not rs.NoMatch Then

MsgBox "Dieser Eintrag ist bereits in der " & _
"Liste enthalten und kann nicht ein " & _
"weiteres Mal hinzugefügt werden!", vbExclamation

Else

If IsNull(Me.txtvalueKst) = True Or Me.txtvalueKst = "" Then
MsgBox "Bitte geben Sie eine Kostform ein!", vbExclamation
Me.txtvalueKst.SetFocus
Exit Sub
Else
...
Gunter Avenius
2005-12-06 09:38:58 UTC
Permalink
Hallo Frank Kötting,
Post by Frank Kötting
Hallo Access-Freunde,
ich arbeite mit Access 00 und habe folgendes Problem.
Ich habe aus einem Codebuch ""Das Access-VBA Codebook" den
untenstehenden
Code herauskopiert und in für mein Anliegen angepaßt.
Also im Grunde nur die Textfeldnamen geändert.
Laufzeitfehler '3464'
Datentypen im Kriterienausdruck unverträglich
Access markiert darauf dann die Zeile: rs.FindFirst
("[ObjektKst]='" & Me.txtvalueKst & "'")
ObjektKst liegt in einer Tabelle und ein Zahlenwert LongInteger
txtvalueKst ist ein ungebundenes Textfeld im Formular
Probier es so:

rs.FindFirst ("[ObjektKst]=" & Me.txtvalueKst )
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Stefan Dase
2005-12-06 09:42:43 UTC
Permalink
Hallo Frank!
Post by Frank Kötting
Laufzeitfehler '3464'
Datentypen im Kriterienausdruck unverträglich
Access markiert darauf dann die Zeile: rs.FindFirst
("[ObjektKst]='" & Me.txtvalueKst & "'")
ObjektKst liegt in einer Tabelle und ein Zahlenwert LongInteger
txtvalueKst ist ein ungebundenes Textfeld im Formular
Für Zahlenwerte musst du das Hochkomma weglassen, das benötigt man nur
für Textfelder. Also:

rs.FindFirst "[ObjektKst] = " & Me.txtvalueKst

HTH,
Stefan
Bernd Heumann
2005-12-06 09:43:25 UTC
Permalink
Hallo Frank
Post by Frank Kötting
Hallo Access-Freunde,
ich arbeite mit Access 00 und habe folgendes Problem.
Ich habe aus einem Codebuch ""Das Access-VBA Codebook" den
untenstehenden Code herauskopiert und in für mein Anliegen angepaßt.
Also im Grunde nur die Textfeldnamen geändert.
Laufzeitfehler '3464'
Datentypen im Kriterienausdruck unverträglich
Access markiert darauf dann die Zeile: rs.FindFirst
("[ObjektKst]='" & Me.txtvalueKst & "'")
ObjektKst liegt in einer Tabelle und ein Zahlenwert LongInteger
txtvalueKst ist ein ungebundenes Textfeld im Formular
Was habe ich nicht bedacht bzw. falsch gemacht? Würde mich freuen wenn
mir da einer Helfen könnte, da die OnlineHilfe leider auch nicht viel
hergibt.
Mfg
Frank Kötting
Da ObjektKst eine Ganzzahl ist, darfst du nicht mit einem String
vergleichen:
Du mußt also die Tüddelchen weglassen:
rs.findfirst "[ObjektKst]=" & Me.txtvalueKst

Grüße
Bernd
--
FAQ: http://www.donkarl.com
Ulrich Haarmeyer
2005-12-06 09:42:22 UTC
Permalink
Hallo Frank
Post by Frank Kötting
ich arbeite mit Access 00 und habe folgendes Problem.
Ich habe aus einem Codebuch ""Das Access-VBA Codebook" den
untenstehenden Code herauskopiert und in für mein Anliegen angepaßt.
Also im Grunde nur die Textfeldnamen geändert.
Laufzeitfehler '3464'
Datentypen im Kriterienausdruck unverträglich
rs.FindFirst "[ObjektKst]='" & Me.txtvalueKst & "'"
ObjektKst liegt in einer Tabelle und ein Zahlenwert LongInteger
txtvalueKst ist ein ungebundenes Textfeld im Formular
Was habe ich nicht bedacht bzw. falsch gemacht? Würde mich freuen
wenn mir da einer Helfen könnte, da die OnlineHilfe leider auch
nicht viel hergibt.
Vergleich von Textfeldern:
"[Feldname]='" & Vergleichsfeld & "'"
Vergleich von Zahlenfeldern:
"[Feldname]=" & Vergleichsfeld

In deinem Fall also:
rs.FindFirst "[ObjektKst]=" & Nz(CLng(Me.txtvalueKst),0)

Mit CLng wird der Inhalt von txtValueKst in eine LongIntegerZahl
umgewandelt, sofern der Inhalt nummerisch ist.
Nz verhindert, das ein Null-Wert übergeben wird und ersetzt
diesen ggf. durch 0

Somit sollte nun kein Fehler mehr auftreten.

Gruß
Uli
Frank Kötting
2005-12-06 10:15:30 UTC
Permalink
Vielen Dank für Eure Hilfe.

Jetzt klappt es.

Frank Kötting

Loading...