"Expected:=" compile error in vb6 while adding recordset to SQL Server 2005 database
Here I created recordset in vb6 and store values in that vb6. i want to write that recordset values to database table. while executing that code i am getting compile error like "Expected:=". please see the code below. Please let me know where I am doing wrong. I am getting error in cmdCommand.Execute()
With rcdDNE.Fields
.Append "RTN", adVarChar, 9
.Append "AccountNbr", adVarChar, 17
.Append "IndividualName", adVarChar, 22
.Append "FirstName", adVarChar, 50
.Append "MiddleName", adVarChar, 1
.Append "LastName", adVarChar, 50
.Append "Amount", adCurrency
End With
rcdDNE.Open
intFileNbr = FreeFile(1)
Open strFileName For Input As #intFileNbr Len = 95 ' Open file for input.
Do While Not EOF(intFileNbr)
Line Input #intFileNbr, strCurrentLine
If Mid(strCurrentLine, 1, 1) = 6 Then
strRoutingNbr = Mid(strCurrentLine, 4, 8)
strAcct = Mid(strCurrentLine, 13, 17)
strIndividualName = Trim(Mid(strCurrentLine, 55, 22))
strAmount = Trim(Mid(strCurrentLine, 30, 10))
strAmount = Left(strAmount, Len(strAmount) - 1)
curAmount = CCur(strAmount)
End If
' Add new record to temporary recordset
With rcdDNE
.AddNew
.Fields![RTN] = strRoutingNbr
.Fields![AccountNbr] = strAcct
.Fields![IndividualName] = strIndividualName
.Fields![Amount] = curAmount
.Update
End With
Loop
Close #intFileNbr
frmDNELoad.lblStatus.Caption = "Formatting Names..."
frmDNELoad.Refresh
DoEvents
' Parse the IndividualName field
rcdDNE.MoveFirst
Do Until rcdDNE.EOF
lngMidInitPos = 0
lngParsePos1 = 0
lngParsePos2 = 0
lngParsePos3 = 0
lngParsePos4 = 0
lngParsePos5 = 0
lngParsePos6 = 0
strParseString = ""
strParseFirstNm = ""
strParseMidInit = ""
strParseLastNam = ""
strParseString = Trim(rcdDNE.Fields![IndividualName])
' Replace double spaces (" ") with a single space (" ")
lngPos = InStr(1, strParseString, " ")
Do While lngPos
strParseString = Mid(strParseString, 1, lngPos - 1) & Mid(strParseString, lngPos + 1, Len(strParseString))
lngPos = InStr(1, strParseString, " ")
Loop
' Locate positions of remaining spaces
lngParsePos1 = InStr(1, strParseString, " ")
If lngParsePos1 = 0 Then
lngParsePos2 = 0
Else
lngParsePos2 = InStr(lngParsePos1 + 1, strParseString,开发者_如何学编程 " ")
End If
If lngParsePos2 = 0 Then
lngParsePos3 = 0
Else
lngParsePos3 = InStr(lngParsePos2 + 1, strParseString, " ")
End If
If lngParsePos3 = 0 Then
lngParsePos4 = 0
Else
lngParsePos4 = InStr(lngParsePos3 + 1, strParseString, " ")
End If
If lngParsePos4 = 0 Then
lngParsePos5 = 0
Else
lngParsePos5 = InStr(lngParsePos4 + 1, strParseString, " ")
End If
If lngParsePos5 = 0 Then
lngParsePos6 = 0
Else
lngParsePos6 = InStr(lngParsePos5 + 1, strParseString, " ")
End If
' Determine if Middle initial is present
If (lngParsePos3 - lngParsePos2) = 2 Then
lngMidInitPos = lngParsePos2 + 1
rcdDNE.Fields![MiddleName] = Mid(strParseString, lngMidInitPos, 1)
ElseIf (lngParsePos4 - lngParsePos3) = 2 Then
lngMidInitPos = lngParsePos3 + 1
rcdDNE.Fields![MiddleName] = Mid(strParseString, lngMidInitPos, 1)
ElseIf (lngParsePos5 - lngParsePos4) = 2 Then
lngMidInitPos = lngParsePos4 + 1
rcdDNE.Fields![MiddleName] = Mid(strParseString, lngMidInitPos, 1)
ElseIf (lngParsePos6 - lngParsePos5) = 2 Then
lngMidInitPos = lngParsePos5 + 1
rcdDNE.Fields![MiddleName] = Mid(strParseString, lngMidInitPos, 1)
ElseIf (lngParsePos2 - lngParsePos1) = 2 Then
lngMidInitPos = lngParsePos1 + 1
rcdDNE.Fields![MiddleName] = Mid(strParseString, lngMidInitPos, 1)
End If
' If there is a middle initial, everything to the left of it goes into the
' first name field, and everything to the right of it goes into the last
' name field. If there is no middle initial, everything after the first space
' goes into the last name field.
If lngMidInitPos <> 0 Then
rcdDNE.Fields![FirstName] = Trim(Left(strParseString, lngMidInitPos - 1))
rcdDNE.Fields![LastName] = Trim(Mid(strParseString, lngMidInitPos + 1, Len(strParseString)))
Else
rcdDNE.Fields![FirstName] = Trim(Left(strParseString, lngParsePos1))
rcdDNE.Fields![LastName] = Trim(Mid(strParseString, lngParsePos1 + 1, Len(strParseString)))
End If
rcdDNE.Update
rcdDNE.MoveNext
Loop
' Write records to Database
Call FindServerConnection_NoMsg
Dim cmdCommand As New ADODB.Command
If rcdDNE.EOF = False Then
rcdDNE.MoveFirst
cmdCommand.CommandText = "insert into DneFrc (RTN, AccountNbr, FirstName, MiddleName, LastName, Amount) values (RTN, AccountNbr, FirstName, MiddleName, LastName, Amount)"
cmdCommand.Execute()
rcdDNE.MoveNext
Loop Until rcdDNE.EOF = True
You state that the error is occurring in cmdCommand.Execute()
This is simply executing the value of CommandText. It really has nothing to do with the previous code, which could be replaced in the example with a simple table of the data used, and a simple explanation of the expected states of the table(s), and the outcome
The original CommandText is obviously wrong because the values list comprises undeclared variables.
The changed values list won't work either unless you block the code using 'with rcdDNE' so you can use .Fields instead of rcdDNE.Fields.
I cut and pasted the string into notepad to discover the mix of ' and " which on first view look ok, except I would check this.
Also, think about the numeric and string values. A good test would be to simply construct a value list with hard coded test values in it. You could also assign the field values to variables and use these in your value list. This way you could test the actual value of each for validity prior to executing the statement.
You could also try executing the command directly in an SQL environment, rather than running your code each time.
精彩评论