....sqlstr = "select log_Time AS Tm from " & stationID & " where ((log_Date=#" & Arocon & "#) and (log_Time=#" & data_stream(1) & "#))"-----查询语句,判断Access数据库中是否有符合条件的记录Conn.Execute sqlstr----执行1
If Rs.EOF Thensqlstr = "insert into " & stationID & "(log_Date,log_Time,Hcon,State,Load,Allweight,Mfiux,FFiux) values ('" & data_stream(0) & "','" & data_stream(1) & "','" & data_stream(2) & "','" & data_stream(3) & "','" & data_stream(4) & "','" & data_stream(5) & "','" & data_stream(6) & "','" & data_stream(7) & "')"-----插入语句,如果Access数据库中没有符合条件的记录则插入Conn.Execute sqlstr----执行1
.....‘===================================
以上为主要部分,两条sqlstr全部自动生成。流程:生成查询语句->执行->(如果没有记录)生成插入语句->执行。问题:当数据库中为空,即每个表中都没有数据时候,执行顺利,数据插入成功;但是当数据库中存在数据时候,即使只有一张表中存在一条数据时候,查询sqlstr“执行1”就不执行了。请达人指点,小弟感激不尽~~~
If Rs.EOF Thensqlstr = "insert into " & stationID & "(log_Date,log_Time,Hcon,State,Load,Allweight,Mfiux,FFiux) values ('" & data_stream(0) & "','" & data_stream(1) & "','" & data_stream(2) & "','" & data_stream(3) & "','" & data_stream(4) & "','" & data_stream(5) & "','" & data_stream(6) & "','" & data_stream(7) & "')"-----插入语句,如果Access数据库中没有符合条件的记录则插入Conn.Execute sqlstr----执行1
.....‘===================================
以上为主要部分,两条sqlstr全部自动生成。流程:生成查询语句->执行->(如果没有记录)生成插入语句->执行。问题:当数据库中为空,即每个表中都没有数据时候,执行顺利,数据插入成功;但是当数据库中存在数据时候,即使只有一张表中存在一条数据时候,查询sqlstr“执行1”就不执行了。请达人指点,小弟感激不尽~~~
当数据库中有记录(即使只有一个表中有一条数据),那么生成的查询语句sqlstr="select..."就不执行了。也可以理解为,第一次运行数据库各表都没有数据,执行正常,即插入数据。
第二次执行,这时候数据库中已经有第一次之后后插入的数据了。这时候那条sqlstr=“selecet ...”就不执行了。不知道我又没有说清楚,再次期待你的回复,谢谢
Set Rs=Conn.Execute sqlstr
sqlstr="select ..."
conn.Execute sqlstr----执行一sqlstr="insert ..."
conn.Execute sqlstr----执行二是当数据库中有数据时,执行一不执行了。
If Rs.Eof=True Then(或者是 Rs.recordcount=0)
Con.Exec 执行一
Else
Con.Exec 执行二
Endif
这样吗?
sqlstr = "insert into
---------------------
Set Rs = Conn.Execute(sqlstr) '改正执行1If Rs.EOF Then '这里没给Rs赋值,所以每次都是EOF,每次都执行Insert into
sqlstr = "insert into
Dim Arrsub() As String
Dim Arrdata() As String
Dim Arrcon() As String
Dim i, j, k As Integer
Dim sqlstr As String
Dim counter, time1 As Long
Dim Arocon As String
time1 = 2
Arrsub = Split(TempData, Chr(10))
For i = 0 To UBound(Arrsub)
If InStr(1, Arrsub(i), ",", 1) <> 0 Then
Arrsub(i) = Replace(Arrsub(i), " ", "")
Arrdata = Split(Arrsub(i), ",")
Arrcon = Split(Arrdata(0), "-")
Arocon = Arrcon(1) & "-" & Arrcon(0) & "-" & Arrcon(2)
data_stream(0) = Arrcon(2) & "-" & Arrcon(1) & "-" & Arrcon(0)
data_stream(1) = Arrdata(1)
For j = 3 To UBound(Arrdata)
Select Case Arrdata(j)
Case Is = "58"
If Arrdata(j + 1) <> "" Then
data_stream(2) = Arrdata(j + 1)
Else
data_stream(2) = "99999"
End If
Case Is = "41"
If Arrdata(j + 1) <> "" Then
data_stream(3) = Arrdata(j + 1)
Else
data_stream(3) = "99999"
End If
Case Is = "35"
If Arrdata(j + 1) <> "" Then
data_stream(4) = Arrdata(j + 1)
Else
data_stream(4) = "99999"
End If
Case Is = "9"
If Arrdata(j + 1) <> "" Then
data_stream(5) = Arrdata(j + 1)
Else
data_stream(5) = "99999"
End If
Case Is = "39"
If Arrdata(j + 1) <> "" Then
data_stream(6) = Arrdata(j + 1)
Else
data_stream(6) = "99999"
End If
Case Is = "40"
If Arrdata(j + 1) <> "" Then
data_stream(7) = Arrdata(j + 1)
Else
data_stream(7) = "99999"
End If
End Select
j = j + 1
Next j
For k = 0 To 7
If data_stream(k) = "" Then
data_stream(k) = "99999"
End If
Next k
sqlstr = "select log_Time AS Tm from " & stationID & " where ((log_Date=#" & Arocon & "#) and (log_Time=#" & data_stream(1) & "#))"
MsgBox sqlstr
Conn.Execute sqlstr
If Rs.EOF Then
sqlstr = "insert into " & stationID & "(log_Date,log_Time,Hcon,State,Load,Allweight,Mfiux,FFiux) values ('" & data_stream(0) & "','" & data_stream(1) & "','" & data_stream(2) & "','" & data_stream(3) & "','" & data_stream(4) & "','" & data_stream(5) & "','" & data_stream(6) & "','" & data_stream(7) & "')"
Conn.Execute sqlstr
End If
Set Rs = Nothing
Rs.Close
End If
Next i
counter = Timer + time1
Do Until counter <= Timer
DoEvents
LoopEnd Function上边就是函数的全部代码。
Conn.Execute sqlstr 换成 Set Rs=Conn.Execute(sqlstr) !!!
If Rs.EOF Thensqlstr = "insert into " & stationID & "(log_Date,log_Time,Hcon,State,Load,Allweight,Mfiux,FFiux) values ('" & data_stream(0) & "','" & data_stream(1) & "','" & data_stream(2) & "','" & data_stream(3) & "','" & data_stream(4) & "','" & data_stream(5) & "','" & data_stream(6) & "','" & data_stream(7) & "')"-----插入语句,如果Access数据库中没有符合条件的记录则插入Conn.Execute sqlstr----执行1End If
conn.Execute sqlstr,i '----执行一if i=0 then
sqlstr="insert ..."
conn.Execute sqlstr '----执行二
end if