ich bekomme in der Zeile sFfldValue[iSP] = Str(Records.Value(iRecID, sDBfldNames.String(iSP))) beim Compilieren eine Fehlermeldung: syntax error: numeric expression missing in line ... near pos 42 in ...
- Code: Select all
Dim bExist as Boolean, bChange as Boolean
Dim sFfldValue[1] as String
Dim sRecID as String, sSQL as String
Dim sDBfldNames as Strings = New Strings
If Database.SetCurrentDatabase(sDBName) Then
sSQL = "SELECT * FROM " & sTblName & ";"
sRecID = Records.Open(sDBName, sSQL)
sDBfldNames = Records.FieldNames(sRecID)
' iDS = Records.Length(sRecID)
EndIf
bExist = False
bChange = False
sSQL = "SELECT * FROM " & sTblName & _
"WHERE ID_Con = " & sCols.String(1) & ";"
sRecID = Records.Open(sDBName, sSQL)
Print "Field-Name", "File-Value", "DB-Value"
If Records.Length(sRecID) >= 1 Then
bExist = True
For iSP = 1 To iNrCols
If FieldIsNum(sDBName, sTblName, sDBfldNames.String(iSP)) Then
sFfldValue[iSP] = Str(Records.Value(iRecID, sDBfldNames.String(iSP)))
Else
sFfldValue[iSP] = Records.Value(iRecID, sDBfldNames.String(iSP))
EndIf
Print sFfldName[iSP], sCols.String(iSP), sFfldValue[iSP]
If sCols.String(iSP) <> sFfldValue[iSP] Then
bChange = True
EndIf
Next iSP
EndIf
Die Funktion FieldIsNum ermittelt zur Laufzeit, ob es sich bei dem entsprechenden Datenfeld um ein numerisches Feld oder ein Stringfeld handelt. Zum Zeitpunkt des Compilierens ist das noch offen, da die Datentabelle aus numerischen und Stringfeldern besteht. Die strenge Prüfung des Compilers bezüglich eines numerischen Inhalts ist also hier meines Erachtens nicht angebracht.
Was kann ich unternehmen,um den Code dennoch zum Laufen zu bringen?
/PMan