[VBA] Type Mismatch

Pagina: 1
Acties:

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 18:50
Ik heb een vreemde fout waar ik niet uit kan komen. Het gaat om een (ogenschijnlijk) simpele fout. Namelijk de fout Type Mismatch (3464) die ik krijg op de laatste regel. Het vreemde is dat dit volgens mij wel klopt. De velden die vergleken moeten worden zijn namelijk allebei numeriek. Ik heb de variabele strzoekk ook al als long, double, etc gedeclareerd, maar hij blijft dezelfde foutmelding geven. Iemand een id?

Ik heb al gezocht op got en google, maar daar vind ik alleen dat ik de variabele anders moet declareren, maar dat helpt dus niet :?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    Dim dbs As Database
    Dim strzoek As String
    Dim strzoekK As Integer
    Dim strLCK As String
    Dim strDCK As String
    Dim progress As Long
    
    Set dbs = CurrentDb
    Set rstLK = dbs.OpenRecordset("SELECT * FROM tmp_Klant")
    Set rstDK = dbs.OpenRecordset("SELECT * FROM [Klant NAW]")
    rstLK.MoveLast
    rstLK.MoveFirst
    rstDK.MoveLast
    rstDK.MoveFirst
    
    progress = 250
    
    Do While Not rstLK.EOF
    Debug.Print "Bezig met klant " & rstLK.klt_nummer & " " & rstLK.klt_naam
    strzoekK = rstLK!klt_nummer
    rstDK.FindFirst "Klantnummer = '" & strzoekK & "'"

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:28

Janoz

Moderator Devschuur®

!litemod

Het probleem is niet de strzoekK (wat een vreemde naam voor een numeriek veld) maar waarschijnlijk het feit dat rstLK!klt_nummer een string oplevert. Je zult 'm waarschijnlijk ff moeten casten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • mauriceb
  • Registratie: Maart 2001
  • Laatst online: 24-08 23:23
code:
1
rstDK.FindFirst "Klantnummer = '" & strzoekK & "'"


Als je Klantnummer een numeriek veld is, moet je de aanhalingstekens weg laten die gebruik je namelijk alleen bij tekstvelden.

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 18:50
Janoz schreef op 22 January 2003 @ 10:36:
Het probleem is niet de strzoekK (wat een vreemde naam voor een numeriek veld) maar waarschijnlijk het feit dat rstLK!klt_nummer een string oplevert. Je zult 'm waarschijnlijk ff moeten casten.
idd is het een vreemde naam... Ik had hem eerst als string gedeclareerd, maar goed, ik zit nog in de ontwerpfase ;) .

Ik snap niet goed hoe je erbij komt dat rstLK!kltnummer een string is, omdat hij in de tabel als numeriek staat. Maar goed, ik ben ook nog niet zo bedreven in dit geheel... |:(

Daarom weet ik ook niet wat 'ff casten' betekend. Ik hoop niet dat dat heel erg dom is.....?

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 18:50
mauriceb schreef op 22 January 2003 @ 10:40:
code:
1
rstDK.FindFirst "Klantnummer = '" & strzoekK & "'"


Als je Klantnummer een numeriek veld is, moet je de aanhalingstekens weg laten die gebruik je namelijk alleen bij tekstvelden.
Idd! _/-\o_

Ik zit altijd te knoeien met die aanhalingstekens, etc. Weet jij trouwens of hier stelregels voor te vinden zijn op het web?? Ik vind dat namelijk nogal onduidelijk allemaal.

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:28

Janoz

Moderator Devschuur®

!litemod

Owh, ik had niet goed gekeken.. Ik dacht dat het op de 1 na laatste rtegel fout ging. Op de laatste dan moet je idd ff die haakjes weghalen.

Ik vind het trouwens sowieso een beetje een rare constru ctie zo waarbij je een string als argument (aangezien de boel tussen " staat) mee moet geven die door een result set doorzoeker ge 'eval'-ed word.

Met 'ff casten' bedoel ik dat je van het ene datatype een ander datatype maakt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:28

Janoz

Moderator Devschuur®

!litemod

Masch schreef op 22 januari 2003 @ 10:44:
[...]


Idd! _/-\o_

Ik zit altijd te knoeien met die aanhalingstekens, etc. Weet jij trouwens of hier stelregels voor te vinden zijn op het web?? Ik vind dat namelijk nogal onduidelijk allemaal.



Eigenlijk is dat heel simpel. Een string (tekst dus, niet de variabelen) zet je tussen aanhalingstekens omdat de compiler/interpreter anders niet weet waneer deze afgelopen is. In principe zou dit ook de enige plaats moeten zijn waar dit wordt gebruikt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • mauriceb
  • Registratie: Maart 2001
  • Laatst online: 24-08 23:23
Masch schreef op 22 January 2003 @ 10:44:
[...]
Ik zit altijd te knoeien met die aanhalingstekens, etc. Weet jij trouwens of hier stelregels voor te vinden zijn op het web?? Ik vind dat namelijk nogal onduidelijk allemaal.
Niet dat ik weet; ik ben er zelf ook maar met trial and error achter gekomen :)

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 18:50
Janoz schreef op 22 January 2003 @ 10:46:
Owh, ik had niet goed gekeken.. Ik dacht dat het op de 1 na laatste rtegel fout ging. Op de laatste dan moet je idd ff die haakjes weghalen.

Ik vind het trouwens sowieso een beetje een rare constru ctie zo waarbij je een string als argument (aangezien de boel tussen " staat) mee moet geven die door een result set doorzoeker ge 'eval'-ed word.

Met 'ff casten' bedoel ik dat je van het ene datatype een ander datatype maakt.
Omdat ik zo aan het knoeien was met die aanhalingstekens heb ik het op deze manier gedaan. Ik krijg het niet voor elkaar om in de 'zoekexpressie' rechstreeks naar de rstLK recordset te laten kijken.

Weet ik dat ook weer.

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!

Pagina: 1