ik ben bezig om data in een access database te editten / adden (vanuit autocad)
nu heb ik een query met daarin een variabele, maar deze wil maar niet lukken ik heb verschillende dingen geprobeerd. Als ik de query zoals onder gaat alles goed.
maar als ik van de query deze maak, dan gaat het verkeerd (eeror = 13 Type mismatch)
en waarom???
als ik "MsgBox naam" doe komt de goede naam tevoorschijn
gehele code :
nu heb ik een query met daarin een variabele, maar deze wil maar niet lukken ik heb verschillende dingen geprobeerd. Als ik de query zoals onder gaat alles goed.
code:
1
| Set rs = db.OpenRecordset("SELECT * FROM onderhoek WHERE ID=54) |
maar als ik van de query deze maak, dan gaat het verkeerd (eeror = 13 Type mismatch)
code:
1
| Set rs = db.OpenRecordset("SELECT * FROM onderhoek WHERE TEKENINGNAAM= '" & naam & "' ") |
en waarom???
als ik "MsgBox naam" doe komt de goede naam tevoorschijn
gehele code :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| Sub Onderhoek()
Dim Attributen As Variant
Dim element As AcadEntity
Dim attribuut As AcadAttributeReference
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = DBEngine.Workspaces(0).OpenDatabase("C:\Documents and Settings\dirco\Desktop\tekeningen beheer systeem\database.mdb")
For Each element In ThisDrawing.PaperSpace
If element.ObjectName = "AcDbBlockReference" Then
Set Symbool = element
If Symbool.HasAttributes Then
Attributen = Symbool.GetAttributes
For i = LBound(Attributen) To UBound(Attributen)
Set attribuut = Attributen(i)
If attribuut.TextString = "" Then
attribuut.TextString = " "
End If
If attribuut.TagString = "TEKENINGNAAM" Then
naam = attribuut.TextString
End If
If attribuut.TagString = "TEKNR" Then
nr = attribuut.TextString
End If
If attribuut.TagString = "VERSIE" Then
versie = attribuut.TextString
End If
Next i
Set rs = db.OpenRecordset("SELECT * FROM onderhoek WHERE TEKENINGNAAM= '" & naam & "' ")
MsgBox rs
If rs.EOF Then
rs.AddNew
Else
rs.Edit
End If
For i = LBound(Attributen) To UBound(Attributen)
rs.Fields(Attributen(i).TagString) = (Attributen(i).TextString)
Next i
rs.Update
End If
End If
Next element
End Sub |