Const server_IPAddress = "172.16.27.225" 'Screwinfo IP Address,需要传输的时候看
Const local_IPAddress = "172.16.27.225"
Const server_connstr = "Provider=SQLOLEDB.1;Password=Pass1234567890;Persist Security Info=True;User ID=sa;Initial Catalog=ScrewInfo;Data Source=LIYUN-PC\WinCC"
Const local_connstr = "Provider=SQLOLEDB.1;Password=Pass1234567890;Persist Security Info=True;User ID=sa;Initial Catalog=Local;Data Source=LIYUN-PC\WinCC"Dim i_index As IntegerPrivate Function Myid() As String  
    Dim SqlConn As New ADODB.Connection
    
    'Dim Rs As Object
    'Dim Rs As String
    'Dim SqlConn As String
    'Dim ADODB As Data
    Dim strSQL_local As String
    'Set SqlConn = CreateObject("ADODB.Connection")
    
    Set Rs = CreateObject("ADODB.Recordset")
    
    SqlConn.Open local_connstr    strSQL_local = "SELECT top 50 ID, VIN, ScrewID, Torque, Angle, WorkerID, OKFlag, GetTime, SCount, CarType, SubmitFlag, ScrewNo, FilePath, Y1V, Y2V, SubmitMain, SNR, SID, PRG,  TorqueMin, TorqueMax, TorqueTarget, AngleMin, AngleMax, AngleTarget, KENN, IpAddress, SubmitMainFlag FROM Tbl_Screw where (SubmitFlag = 0 or submitFlag is Null) order by ID Desc"
     
    Rs.Open strSQL_local, SqlConn, adOpenKeyset, adLockOptimistic
   
    SqlConn.Execute strSQL_local
    
    'On Error GoTo ErrorHandler
    
   
If Rs.RecordCount > 0 Then
      
     Rs.MoveFirst
      
    Myid = CStr(Rs.Fields("ID"))
    myvin = CStr(Rs.Fields("VIN"))
    ScrewID = CStr(Rs.Fields("Screwid"))
    Torque = CStr(Rs.Fields("Torque"))
    Angle = CStr(Rs.Fields("Angle"))
    'WorkerID = CStr(Rs.Fields("WorkerID"))
    'OKFlag = CStr(Rs.Fields("OKFlag"))
    'GetTime = CStr(Rs.Fields("GetTime"))
    'SCount = CStr(Rs.Fields("SCount"))
    'CarType = CStr(Rs.Fields("CarType"))
    'SubmitFlag = CStr(Rs.Fields("SubmitFlag"))
    'ScrewNo = CStr(Rs.Fields("ScrewNo"))
    'FilePath = CStr(Rs.Fields("FilePath"))
    'Y1V = CStr(Rs.Fields("Y1V"))
    'Y2V = CStr(Rs.Fields("Y2V"))
    'SubmitMain = CStr(Rs.Fields("SubmitMain"))
    'SNR = CStr(Rs.Fields("SNR"))
    'SID = CStr(Rs.Fields("SID"))
    'PRG = CStr(Rs.Fields("PRG"))
    'TorqueMin = CStr(Rs.Fields("TorqueMin"))
    'TorqueMax = CStr(Rs.Fields("TorqueMax"))
    'TorqueTarget = CStr(Rs.Fields("TorqueTarget"))
    'AngleMin = CStr(Rs.Fields("AngleMin"))
    'AngleMax = CStr(Rs.Fields("AngleMax"))
    'AngleTarget = CStr(Rs.Fields("AngleTarget"))
    'KENN = CStr(Rs.Fields("KENN"))
   'pAddress = CStr(Rs.Fields("IpAddress"))
    'ubmitMainFlag = CStr(Rs.Fields("SubmitMainFlag"))
  
  Else
    Myid = ""
    myvin = ""
    ScrewID = ""
    Torque = ""
    Angle = ""
    'WorkerID = ""
    'OKFlag = ""
    'GetTime = ""
    'SCount = ""
    'CarType = ""
    'SubmitFlag = ""
    'ScrewNo = ""
    'FilePath = ""
    'Y1V = ""
    'Y2V = ""
    'SubmitMain = ""
    'SNR = ""
    'SID = ""
    'PRG = ""
    'TorqueMin = ""
    'TorqueMax = ""
    'TorqueTarget = ""
    'AngleMin = ""
    'AngleMax = ""
    'AngleTarget = ""
    'KENN = ""
    'IpAddress = ""
    'ubmitMainFlag = ""
        
        Exit Function
     Rs.Close
End If
    
'ErrorHandler:
   ' MsgBox "what is a fuck baby!!"
       
End FunctionPrivate Sub InsertData()
    Dim strSQL_server As String    Dim local_connstr As String
    
    Dim SqlConn As New ADODB.Connection
        SqlConn.Open server_connstr
 
    strSQL_server = "INSERT INTO Tbl_Screw(ID, VIN, ScrewID, Torque, Angle, WorkerID, OKFlag, GetTime, SCount, CarType, SubmitFlag, ScrewNo, FilePath, Y1V, Y2V, SubmitMain, SNR, SID, PRG,  TorqueMin, TorqueMax, TorqueTarget, AngleMin, AngleMax, AngleTarget, KENN, IpAddress, SubmitMainFlag)VALUES ('"
    strSql = strSql + Myid + "','" + myvin + "','" + ScrewID + "','" + Torque + "','" + Angle + "','" + WorkerID + "','"
    strSql = strSql + OKFlag + "','" + GetTime + "','" + SCount + "','" + CarType + "','" + SubmitFlag + "','" + ScrewNo + "','" + FilePath + "','" + Y1V + "',"
    strSql = strSql + Y2V + "','" + SubmitMain + "','" + SNR + "','" + PRG + "','" + TorqueMin + "','" + TorqueMax + "','" + TorqueTarget + "','" + AngleMin + "','" + AngleTarget + "','" + KENN + "','" + IpAddress + "','" + SubmitMainFlag + "')"    SqlConn.Execute strSql
    
    Call updatelocal_info
    
    
    
    
End SubPrivate Sub updatelocal_info()
Dim SqlConn As New ADODB.Connection
Dim strSQL_local As String
SqlConn.Open strSQL_local strSQL_local = "UPDATE [Tbl_Screw] Set Y1V = null, Y2V = null, SubmitFlag = 1 where VIN='" & myvin & "' and ID ='" & Myid & "'"
End SubPrivate Sub Timer1_Timer()
       
Call MyidCall InsertData
      
End SubVB数据库

解决方案 »

  1.   

    Const server_IPAddress = "172.16.27.225" 'Screwinfo IP Address,需要传输的时候看
    Const local_IPAddress = "172.16.27.225"
    Const server_connstr = "Provider=SQLOLEDB.1;Password=Pass1234567890;Persist Security Info=True;User ID=sa;Initial Catalog=ScrewInfo;Data Source=LIYUN-PC\WinCC"
    Const local_connstr = "Provider=SQLOLEDB.1;Password=Pass1234567890;Persist Security Info=True;User ID=sa;Initial Catalog=Local;Data Source=LIYUN-PC\WinCC"Dim i_index As IntegerPrivate Function Myid() As String  
        Dim SqlConn As New ADODB.Connection
        Dim strSQL_local As String
        Dim Rs As ADODB.Recordset
        
        On Error GoTo errhandler
        
        Set Rs = New ADODB.Recordset
        
        SqlConn.CursorLocation = adUseClient
        SqlConn.Open local_connstr    strSQL_local = "SELECT top 50 ID, VIN, ScrewID, Torque, Angle, WorkerID, OKFlag, GetTime, SCount, CarType, SubmitFlag, ScrewNo, FilePath, Y1V, Y2V, SubmitMain, SNR, SID, PRG,  TorqueMin, TorqueMax, TorqueTarget, AngleMin, AngleMax, AngleTarget, KENN, IpAddress, SubmitMainFlag FROM Tbl_Screw where (SubmitFlag = 0 or submitFlag is Null) order by ID Desc"
        Rs.Open strSQL_local, SqlConn, adOpenKeyset, adLockOptimistic
       
       
        If Rs.RecordCount > 0 Then
             
            Rs.MoveFirst
             
            Myid = CStr(Rs.Fields("ID"))
            myvin = CStr(Rs.Fields("VIN"))
            ScrewID = CStr(Rs.Fields("Screwid"))
            Torque = CStr(Rs.Fields("Torque"))
            Angle = CStr(Rs.Fields("Angle"))
        Else
            Myid = ""
            myvin = ""
            ScrewID = ""
            Torque = ""
            Angle = ""
        End If
            
            Exit Function
    ErrorHandler:
        MsgBox Err.Description
           
    End FunctionPrivate Sub InsertData()
        Dim strSQL  As String    Dim local_connstr As String
        
        Dim SqlConn As New ADODB.Connection
            SqlConn.Open server_connstr
     
        strSQL = "INSERT INTO Tbl_Screw(ID, VIN, ScrewID, Torque, Angle, WorkerID, OKFlag, GetTime, SCount, CarType, SubmitFlag, ScrewNo, FilePath, Y1V, Y2V, SubmitMain, SNR, SID, PRG,  TorqueMin, TorqueMax, TorqueTarget, AngleMin, AngleMax, AngleTarget, KENN, IpAddress, SubmitMainFlag)VALUES ('"
        strSQL = strSQL + Myid + "','" + myvin + "','" + ScrewID + "','" + Torque + "','" + Angle + "','" + WorkerID + "','"
        strSQL = strSQL + OKFlag + "','" + GetTime + "','" + SCount + "','" + CarType + "','" + SubmitFlag + "','" + ScrewNo + "','" + FilePath + "','" + Y1V + "',"
        strSQL = strSQL + Y2V + "','" + SubmitMain + "','" + SNR + "','" + PRG + "','" + TorqueMin + "','" + TorqueMax + "','" + TorqueTarget + "','" + AngleMin + "','" + AngleTarget + "','" + KENN + "','" + IpAddress + "','" + SubmitMainFlag + "')"    SqlConn.Execute strSQL
        
        'Call updatelocal_info '这个函数啥都没做,调用干嘛?
        
        
        
        
    End SubPrivate Sub updatelocal_info()
        Dim SqlConn As New ADODB.Connection
        Dim strSQL_local As String
        SqlConn.Open strSQL_local
        
        strSQL_local = "UPDATE [Tbl_Screw] Set Y1V = null, Y2V = null, SubmitFlag = 1 where VIN='" & myvin & "' and ID ='" & Myid & "'"End SubPrivate Sub Timer1_Timer()
           
    'Call Myid'Call InsertData
    '这是想干嘛?不停的查数据,插入数据?
          
    End Sub自己加个cmmand测试你的myid和INSERTdata
      

  2.   

    谢谢兄台!其实我就是想把local数据库的Tbl_Screw表里的内容全部传到screwinfo这个数据库的Tbl_screw里。调用那个函数想把传完数据的本地数据库更新~~上面那个RS不知道为什么只能有5条即到angle,下面如果再加就报错了,是否要加个循环 ,怎么加?
      

  3.   

    晕,你直接用SQL语句做插入就可以了啊,弄的这么复杂干嘛
      

  4.   

    SQL可以跨数据库跨服务器传送的