VB SQL操作问题
Dim objcon As New ADODB.Connection
Set objcon = New ADODB.Connection
objcon.Open strconn
inser = "insert into hr_tm_MonthResult(cpsn_num,vdepcode,cyear,cMonth,cpsn_name,nworkdays,nrealdays,nsalaryrestdays,nnosalaryrestdays,nabsenthour,nbu00leavetypedays,userdef001) values('" & spnum & "','" & sdepcode & "','" & dyear & "','" & smonth & "','" & sname & "'," & dmonthday & "," & dkaoqin & "," & dyouxin & "," & dqinjia & "," & dkuanggong & "," & dyouxin & "," & dlouka & ")"
query = "select cpsn_name,cpsn_num,cdept_num from hr_hi_person where cpsn_name = '" & sname & "'"
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open query, strconn, adOpenDynamic, adLockBatchOptimistic
If rs.RecordCount = 0 Then
MsgBox "" & scomname & "系统没有" & sname & "此用户,请检查人员名称是否正确!"
Else
rs.MoveFirst
spnum = CStr(rs.Fields(1).Value)
sdepcode = CStr(rs.Fields(2).Value)
rs.close
rs.CursorLocation = adUseClient
rs.Open sel, strconn, adOpenDynamic, adLockBatchOptimistic
If rs.RecordCount = 0 Then
objcon.Execute inser
Else
objcon.Execute up
End If
End If
rs.close
objcon.close
当执行objcon.Execute inser这个动作的时候,插入数据库的第一条记录spnum ,sdepcode这两列都是空的,而第二条记录这两列取的数据是第一列应该有的数据,依此类推,
我在执行INSER之前用MSGBOX查看地过,spnum,sdepcode这两个变量的数量是对的啊,插入就变为空了,
[解决办法]
你把程序执行顺序弄错了,先赋值,再连接字串:
- VB code
Dim objcon As New ADODB.Connection Set objcon = New ADODB.Connection objcon.Open strconn query = "select cpsn_name,cpsn_num,cdept_num from hr_hi_person where cpsn_name = '" & sname & "'" Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open query, strconn, adOpenDynamic, adLockBatchOptimistic If rs.RecordCount = 0 Then MsgBox "" & scomname & "系统没有" & sname & "此用户,请检查人员名称是否正确!" Else rs.MoveFirst spnum = CStr(rs.Fields(1).Value) sdepcode = CStr(rs.Fields(2).Value) rs.close rs.CursorLocation = adUseClient rs.Open sel, strconn, adOpenDynamic, adLockBatchOptimistic If rs.RecordCount = 0 Then inser = "insert into hr_tm_MonthResult(cpsn_num,vdepcode,cyear,cMonth,cpsn_name,nworkdays,nrealdays,nsalaryrestdays,nnosalaryrestdays,nabsenthour,nbu00leavetypedays,userdef001) values('" & spnum & "','" & sdepcode & "','" & dyear & "','" & smonth & "','" & sname & "'," & dmonthday & "," & dkaoqin & "," & dyouxin & "," & dqinjia & "," & dkuanggong & "," & dyouxin & "," & dlouka & ")" objcon.Execute inser Else objcon.Execute up End If End If rs.close objcon.close