Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Access -> VBA Typen Unverträglich Fehler 13

495 views
Skip to first unread message

Alexander Bramm

unread,
Jun 30, 2004, 5:57:43 AM6/30/04
to
Ich bekomme bei dem Code immer Typen unverträglich Fehler
13.
Ich weiß langsam nicht mehr, was da noch unverträglich
ist. Ich bin allerdings auch keine guter Programmierer.
Kanns sich das jemand vielleicht mal angucken und mir
einen Tip geben?
Vielen Dank
Code:

Private Sub Form_Current()
'Dieser Code ermöglicht es die Datensätze auch im
Unterformular auszuwählen

Dim rstCln As DAO.Recordset
'Dim strDatum As String
'Dim strDauer As String
'Dim strBeschreibung As String

'strDatum = Me!A_Datum
'strDauer = Me!A_Dauer
'strBeschreibung = Me!A_Beschreibung

'1. Prüfen des Schlüssels, bei Null nicht ausführen
If Not IsNull(Me!A_Datum) Or IsNull(Me!A_Dauer) Or
IsNull(Me!A_Beschreibung) Then
'2. Recordset klonen
Set rstCln = Forms!
usr_Arbeitsnachweise_Übersicht.RecordsetClone

'3. im Klon suchen
Dim strDatum As String
Dim strDauer As String
Dim strBeschreibung As String

strDatum = Format(Me!A_Datum, "m-d-yy")
strDauer = Me!A_Dauer
strBeschreibung = Me!A_Beschreibung
rstCln.FindFirst "A_Beschreibung = '" &
strBeschreibung & "'" And "A_Datum = " & strDatum & ""
And "A_Dauer = '" & strDauer & "'"

If Not rstCln.NoMatch Then
'4. Wert gefunden -> Lesezeichen setzen
Forms!usr_Arbeitsnachweise_Übersicht.Bookmark =
rstCln.Bookmark
End If
'5. wieder aufräumen
End If
End Sub

Karl Donaubauer

unread,
Jun 30, 2004, 6:05:12 AM6/30/04
to
Alexander Bramm wrote:
> Ich bekomme bei dem Code immer Typen unverträglich Fehler
> 13.
> Ich weiß langsam nicht mehr, was da noch unverträglich
> ist. Ich bin allerdings auch keine guter Programmierer.
> Kanns sich das jemand vielleicht mal angucken und mir
> einen Tip geben?

> Dim rstCln As DAO.Recordset
> ...


> '2. Recordset klonen
> Set rstCln = Forms!usr_Arbeitsnachweise_Übersicht.RecordsetClone

> ...

Vielleicht liegt's an der Reihenfolge der Verweise.
s. Access-FAQ 7.11

Wenn nicht, dann verrate zumindest deine Access-Version
und in welcher Zeile der Fehler auftritt - sollte gelb markiert
werden während der Fehlermeldung.

--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in Nürnberg

Karl Donaubauer

unread,
Jun 30, 2004, 7:20:51 AM6/30/04
to
Karl Donaubauer wrote:
> Alexander Bramm wrote:
>> Ich bekomme bei dem Code immer Typen unverträglich Fehler 13.
>> ...

>> Dim rstCln As DAO.Recordset
>> ...
>> Set rstCln = Forms!usr_Arbeitsnachweise_Übersicht.RecordsetClone
>> ...
>
> Vielleicht liegt's an der Reihenfolge der Verweise.
> s. Access-FAQ 7.11

Hmm, kann eigentlich nicht, da du ja mit "DAO" desambiguitiert hast.

> Wenn nicht, dann verrate zumindest deine Access-Version
> und in welcher Zeile der Fehler auftritt - sollte gelb markiert
> werden während der Fehlermeldung.

Vielleicht geht's ja um ganz was anderes.

--
cu

anon...@discussions.microsoft.com

unread,
Jun 30, 2004, 7:27:35 AM6/30/04
to
Erstmal danke für die Antowrt. 7.11 trifft leider nicht
zu.
Ich benutze Access 2000, die DB soll aber unter 97 laufen.
Der Fehler tritt in der Verkettung auf:

rstCln.FindFirst "A_Beschreibung = '" &
strBeschreibung & "'" And "A_Datum = '" & strDatum & "'"
And "A_Dauer = '" & strDauer & "'"

Vielen Dank

>-----Originalnachricht-----

>.
>

Stephan Lüth

unread,
Jun 30, 2004, 7:33:31 AM6/30/04
to

>-----Originalnachricht-----

>Ich bekomme bei dem Code immer Typen unverträglich Fehler
>13.

...


> rstCln.FindFirst "A_Beschreibung = '" &
>strBeschreibung & "'" And "A_Datum = " & strDatum & ""
>And "A_Dauer = '" & strDauer & "'"

...

Hi Alexander,

habe mal Deinen Code getestet und bekomme auch einen 13er
Fehler.

Ursache:
Dei String ist kein String sondern ein Boolescher Ausdruck:
Ändere das Statement wie folgt:

rstCln.FindFirst "A_Beschreibung = '" &
strBeschreibung & _
"' And A_Datum = " & strDatum & _


" And A_Dauer = '" & strDauer & "'"


HTH
Danke und mit freundlichen Grüßen,
Stephan
Microsoft Corporate Support

(Microsoft kann für die Richtigkeit und Vollständigkeit
der Inhalte in dieser Newsgroup keine Haftung übernehmen.)

This posting is provided 'AS IS' with no warranties, and
confers no rights.
Please do not send email directly to this alias. This
alias is for newsgroup purposes only.

Antwort bitte nur in der Newsgroup.


Alexander Bramm

unread,
Jun 30, 2004, 7:54:04 AM6/30/04
to
Hallo Stephan,
erstmal danke für den Hinweis. Jetzt bekomme ich aber
einen Fehler beim Kompilieren: Ungültiges Zeichen.
VB beschwert sich über den Unterstrich. Ich habe den Code
aus deiner Antwort übernommen.
Hast Du noch einen Tip parat?
Vielen Dank


>-----Originalnachricht-----


>
>>-----Originalnachricht-----
>>Ich bekomme bei dem Code immer Typen unverträglich
Fehler
>>13.
>

>....


>> rstCln.FindFirst "A_Beschreibung = '" &
>>strBeschreibung & "'" And "A_Datum = " & strDatum & ""
>>And "A_Dauer = '" & strDauer & "'"

>....


>
>Hi Alexander,
>
>habe mal Deinen Code getestet und bekomme auch einen 13er
>Fehler.
>
>Ursache:
>Dei String ist kein String sondern ein Boolescher
Ausdruck:
>Ändere das Statement wie folgt:
>
> rstCln.FindFirst "A_Beschreibung = '" &
>strBeschreibung & _
> "' And A_Datum = " & strDatum & _
> " And A_Dauer = '" & strDauer & "'"
>
>
>HTH
>Danke und mit freundlichen Grüßen,
>Stephan
>Microsoft Corporate Support
>
>(Microsoft kann für die Richtigkeit und Vollständigkeit
>der Inhalte in dieser Newsgroup keine Haftung übernehmen.)
>
>This posting is provided 'AS IS' with no warranties, and
>confers no rights.
>Please do not send email directly to this alias. This
>alias is for newsgroup purposes only.
>
>Antwort bitte nur in der Newsgroup.
>
>

>.
>

Juergen Frieling

unread,
Jun 30, 2004, 7:59:58 AM6/30/04
to
Hi,

anon...@discussions.microsoft.com schrieb:

> rstCln.FindFirst "A_Beschreibung = '" &
> strBeschreibung & "'" And "A_Datum = '" & strDatum & "'"
> And "A_Dauer = '" & strDauer & "'"

Da sind Dir die " durcheinander gekommen, und Datümer sollte man in #
einschliessen. Versuch mal


rstCln.FindFirst "A_Beschreibung = '" & strBeschreibung & "' And

A_Datum = #" & strDatum & "# And A_Dauer = '" & strDauer & "'"

>> desambiguitiert hast.

Der kennt aber tolle Worte!

Gruss,
Juergen

Ekkehard Böhme

unread,
Jun 30, 2004, 8:00:40 AM6/30/04
to
Hallo Alexander,
Vielleicht liegt es an der Übergabe des Datums. Schau mal in die FAQ 6.8
mfg ekkehard böhme


"Alexander Bramm" <al...@slaughtermachine.de.nospam> schrieb im Newsbeitrag
news:238b501c45e98$f0f4ee00$a401...@phx.gbl...

Juergen Frieling

unread,
Jun 30, 2004, 8:05:47 AM6/30/04
to
Hallo,

Alexander Bramm schrieb:

> VB beschwert sich über den Unterstrich. Ich habe den Code
> aus deiner Antwort übernommen.

Der _ ist das Zeilenfortsetzungszeichen. Wenn Du alles in einer Zeile
hast, hat der da nix zu suchen.

Gruss,
Juergen

Stephan Lüth

unread,
Jun 30, 2004, 8:07:33 AM6/30/04
to

>-----Originalnachricht-----

>Hallo Stephan,
>erstmal danke für den Hinweis. Jetzt bekomme ich aber
>einen Fehler beim Kompilieren: Ungültiges Zeichen.
>VB beschwert sich über den Unterstrich. Ich habe den Code
>aus deiner Antwort übernommen.


Hallo,

Der Unterstrich dient dazu Statements über mehrere Zeilen
zu verteilen. Links vom Unterstrich muss ein Leerzeichen
folgen. I.d.R. steht folgt nach dem _ der Zeilenumbruch.
Das Statement wird in der nächsten Zeile fortgeführt.

Also kann man es auch so schreiben

rstCln.FindFirst "A_Beschreibung = '" & _

anon...@discussions.microsoft.com

unread,
Jun 30, 2004, 8:10:05 AM6/30/04
to
Hallo Ekkehard,
danke für den Hinweis. Das Datum formatiere ich vor der
Verkettung schon um in das amerikanische Format.

strDatum = Format(Me!A_Datum, "m-d-yy")

Ich habe es eben auch mal mit dem ISO Datumsformat
probiert, doch dies hat leider nichts geholfen.

>-----Originalnachricht-----

>.
>

Karl Donaubauer

unread,
Jun 30, 2004, 8:27:35 AM6/30/04
to
Juergen Frieling wrote:
> ...

>>> desambiguitiert hast.
>
> Der kennt aber tolle Worte!

Gell, Quatschübersetzungen kommen oft gut.
Sollte mich aber noch stärker an den MS-Übersetzungen
von VBA-Funktionen orientieren. Vielleicht: "disZweiDeutet"

--
;-)

Michael Zimmermann

unread,
Jun 30, 2004, 9:40:41 AM6/30/04
to
Karl Donaubauer wrote:
> "disZweiDeutet"
vereindeutigt ;-)

Gruß aus Mainz
Michael

Alexander Bramm

unread,
Jun 30, 2004, 9:41:22 AM6/30/04
to
Hallo,
die Typenunverträglichkeit ist endlich weg und es kam
direkt der nächste Fehler ;(
Syntaxfehler in Datum in Ausdruck Laufzeitfehler 3077. Das
wird ordentlich strDatum geschrieben mit neuer
Formatierung.

Private Sub Form_Current()
'Dieser Code ermöglicht es die Datensätze auch im
Unterformular auszuwählen

Dim rstCln As DAO.Recordset

'1. Prüfen des Schlüssels, bei Null nicht ausführen
If Not IsNull(Me!A_Datum) And Not IsNull(Me!A_Dauer)
And Not IsNull(Me!A_Beschreibung) Then

'If Not IsNull(Me!A_Datum) Or IsNull(Me!A_Dauer) Or

IsNull(Me!A_Beschreibung) Then
'2. Recordset klonen

Set rstCln = Forms!
usr_Arbeitsnachweise_Übersicht.RecordsetClone

'3. im Klon suchen


Dim strDatum As String
Dim strDauer As String
Dim strBeschreibung As String

strDatum = Format(Me!A_Datum, "\#yyyy\-mm\-dd\#")


strDauer = Me!A_Dauer
strBeschreibung = Me!A_Beschreibung

rstCln.FindFirst "A_Beschreibung = '" &
strBeschreibung & "' And A_Datum = #" & strDatum & "# And
A_Dauer = '" & strDauer & "'"

If Not rstCln.NoMatch Then
'4. Wert gefunden -> Lesezeichen setzen
Forms!usr_Arbeitsnachweise_Übersicht.Bookmark =
rstCln.Bookmark
End If
'5. wieder aufräumen
End If
End Sub


Bald beiße ich glaube ich in die Tastatur.
Gibt es vielleicht noch weitere Tips? Vor lautern ",
Strings und ' sehe ich schon den Wald nicht mehr.


Vielen Dank


rstCln.FindFirst "A_Beschreibung = '" & strBeschreibung
& "' And A_Datum = #" & strDatum & "# And A_Dauer = '" &
strDauer & "'"

>-----Originalnachricht-----

>.
>

Karl Donaubauer

unread,
Jun 30, 2004, 9:53:38 AM6/30/04
to
Alexander Bramm wrote:
> die Typenunverträglichkeit ist endlich weg und es kam
> direkt der nächste Fehler ;(
> Syntaxfehler in Datum in Ausdruck Laufzeitfehler 3077. Das
> wird ordentlich strDatum geschrieben mit neuer
> Formatierung.
> ...

> strDatum = Format(Me!A_Datum, "\#yyyy\-mm\-dd\#")
> ...

> rstCln.FindFirst "A_Beschreibung = '" &
> strBeschreibung & "' And A_Datum = #" & strDatum & "# And
>...

Du verdoppelst hier die Rauten:


strBeschreibung & "' And A_Datum = " & strDatum & " And

--
HTH

Gunter Avenius

unread,
Jun 30, 2004, 9:52:50 AM6/30/04
to
Hallo Alexander,

Alexander Bramm schrieb folgendes:

> die Typenunverträglichkeit ist endlich weg und es kam
> direkt der nächste Fehler ;(
> Syntaxfehler in Datum in Ausdruck Laufzeitfehler 3077. Das
> wird ordentlich strDatum geschrieben mit neuer
> Formatierung.

[snipp..]

> strDatum = Format(Me!A_Datum, "\#yyyy\-mm\-dd\#")

[snipp..]


> rstCln.FindFirst "A_Beschreibung = '" &
> strBeschreibung & "' And A_Datum = #" & strDatum & "# And

..und in dieser Zeile liegt Deine Fehler. So ist es richtig:

strBeschreibung & "' And A_Datum = " & strDatum & " And...


--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com


Alexander Bramm

unread,
Jul 1, 2004, 2:36:00 AM7/1/04
to
Danke erstmal. Den Fehler hatte ich gestern noch
beseitigt.
Scwhups... der nächste ist da.
Laufzeitfehler '3464'
Datentypen in Kriterienausdruck unverträglich

Es liegt vermutlich wieder am Datum, da im Formular das
Datum im dt. Format steht während es hier jetzt in das ISO
Format umgewandelt ist.
Was kann ich denn jetzt zun?

Die Zeile, wo der Fehler auftritt sieht folgendermaßen aus:


rstCln.FindFirst "A_Beschreibung = '" & strBeschreibung

& "' And A_Datum = " & strDatum & " And A_Dauer = '" &
strDauer & "'"

Vielen Dank
>-----Originalnachricht-----


>Hallo Alexander,
>
>Alexander Bramm schrieb folgendes:
>
>> die Typenunverträglichkeit ist endlich weg und es kam
>> direkt der nächste Fehler ;(
>> Syntaxfehler in Datum in Ausdruck Laufzeitfehler 3077.
Das
>> wird ordentlich strDatum geschrieben mit neuer
>> Formatierung.
>[snipp..]
>
>> strDatum = Format(Me!A_Datum, "\#yyyy\-mm\-dd\#")
>
>[snipp..]
>> rstCln.FindFirst "A_Beschreibung = '" &
>> strBeschreibung & "' And A_Datum = #" & strDatum & "#
And
>

>...und in dieser Zeile liegt Deine Fehler. So ist es

Henry Habermacher [MVP Access]

unread,
Jul 1, 2004, 2:53:11 AM7/1/04
to
Alexander Bramm wrote in news:2424f01c45f35$ac866210$a401...@phx.gbl:

> Danke erstmal. Den Fehler hatte ich gestern noch
> beseitigt.
> Scwhups... der nächste ist da.
> Laufzeitfehler '3464'
> Datentypen in Kriterienausdruck unverträglich
>
> Es liegt vermutlich wieder am Datum, da im Formular das
> Datum im dt. Format steht während es hier jetzt in das ISO
> Format umgewandelt ist.
> Was kann ich denn jetzt zun?
>
> Die Zeile, wo der Fehler auftritt sieht folgendermaßen aus:
> rstCln.FindFirst "A_Beschreibung = '" & strBeschreibung
> & "' And A_Datum = " & strDatum & " And A_Dauer = '" &
> strDauer & "'"

Schau' doch mal im debug Modus nach, was in den einzelnen Variablen drin
steht, das ist die einfachste Methode. Wenn strDatum z.B. NULL ist, oder
A_Dauer ein numerisches Feld wäre, dann klappt das nicht. Die Datentypen
kannst Du halt nicht einfach so vermischen, das muss sauber sein.

Gruss
Henry

--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org

Alexander Bramm

unread,
Jul 1, 2004, 3:23:24 AM7/1/04
to
Hallo Henry,
das habe ich schon geprüft.
strBeschreibung = "blub"
strDatum = "#2004-07-02#"
strDauer = "4,8"

Ich habe vor Ausführung der Verkettung alle relevanten
Daten doch in als String definierte Variablen geschrieben.
Ich dachte damit wäre der Datenmischungskäse gegessen (ich
bin aber auch nur ein Laie).
Oder hat VB ein Problem mit dem Komma bei Dauer?
Vielen Dank
mfg Alex
>-----Originalnachricht-----

>.
>

Henry Habermacher [MVP Access]

unread,
Jul 1, 2004, 4:26:58 AM7/1/04
to
Hallo Alexander

Alexander Bramm wrote in news:242a201c45f3c$4bc366b0$a401...@phx.gbl:


> Hallo Henry,
> das habe ich schon geprüft.
> strBeschreibung = "blub"
> strDatum = "#2004-07-02#"
> strDauer = "4,8"

siehst Du, da haben wir ihn ja schon! strDauer ist eine Zahl, wenn ich
das richtig sehe, auch in der Datenbank als Zahl definiert. Du hast
aber:
1. Gänsefüsschen im SQL Statement drin
2. Eine Deutsche Ländereinstellung, die unglücklicherweise , statt die
vom SQL geforderten Punkte als Dezimaltrennzeichen in Formularfeldern
erzeugt.

Also zuerst mal mit den Gänsefüsschen weg und dann den Inhalt des
Formularfeldes in die interne Zahlennotation umwandeln. Wie's geht,
steht in der FAQ, diesmal ist es
http://www.donkarl.com/FAQ/FAQ6VBA.htm#6.21

anon...@discussions.microsoft.com

unread,
Jul 1, 2004, 9:19:17 AM7/1/04
to
Hallo Henry,
natürlich ist es eine Zahl, aber ich habe sie doch vorher
in eine String Variable geschrieben. Also müsste Sie doch
jetzt als String fungieren oder liege ich da falsch?
So wie es im FAQ beschrieben ist funktioniert es auch
nicht.


Vielen Dank
>-----Originalnachricht-----

>.
>

Henry Habermacher [MVP Access]

unread,
Jul 1, 2004, 11:21:08 AM7/1/04
to
Hallo Alexander

anon...@discussions.microsoft.com wrote in
news:2468e01c45f6e$030113a0$a501...@phx.gbl:

> natürlich ist es eine Zahl, aber ich habe sie doch vorher
> in eine String Variable geschrieben. Also müsste Sie doch
> jetzt als String fungieren oder liege ich da falsch?
> So wie es im FAQ beschrieben ist funktioniert es auch
> nicht.

Nicht die Variable von VBA ist relevant, sondern der Felddatentyp der
Tabelle. Wenn dieser ein Text ist, dann braucht's hier '', wenn's ein
Datum ist, brauchts ## und wenn's eine Zahl ist braucht's nichts.
Schicken allerdings tust Du der Jet Engine ja immer einen String, den
diese dann wieder auseinanderzuddeln muss, aber in diesem String müssen
eben Texte und Datümer anders als Zahlen formattiert werden. Und Zahlen
müssen der amerikanischen Notation gehorchen, genau wie die Datümmer,
welche im Format #mm-dd-yyyy# übergeben werden müssen. Alles klar? Ich
glaube kaum, dass in der FAQ was anderes drin steht, vielleicht ein
bisschen einfacher formuliert, weil von Karl, dem Organisator der AEK,
aber sonst etwa gleichen Inhaltes.

0 new messages