flag=0
do
   If chk_altpn = Trim(stock_Record!P_N) Then flag=1
while not stock_Record.EOF if flag=0 then
  WORK_Connection.Execute "INSERT INTO supplier_stock (qref,p_n) VALUES ('" + M_QREF + "','" + chk_altpn + "')"
  stock_Record.MoveNext
End If

解决方案 »

  1.   

    在 while 之前加stock_record.movenext
      

  2.   

    还有一个End If 放在哪?
      

  3.   

    Dim WORK_Connection As ADODB.Connection
        Set WORK_Connection = New ADODB.Connection
        WORK_Connection.Open "Provider=SQLOLEDB.1;Password=ets2001;Persist Security Info=True;User ID=sa;Initial Catalog=ETS;Data Source=" + Server_Namechk_altpn=labe2.caption   '该句提前
    Dim stock_Record As ADODB.Recordset
        Set stock_Record = New ADODB.Recordset
        sql="select * from supplier_stock where P_n='"& chk_altpn &"'"  '查询supplier_stock表P_n中是否有与chk_altpn相同的纪录    stock_Record.Open sql, WORK_Connection, 1, , adCmdTable
        
        if stock_record.eof then   '没有 则添加
            WORK_Connection.Execute "INSERT INTO supplier_stock (qref,p_n) VALUES ('" + M_QREF + "','" + chk_altpn + "')"
        end if        
      

  4.   

    sql="select * from supplier_stock where P_n='"& chk_altpn &"'"  '查询supplier_stock表P_n中是否有与chk_altpn相同的纪录
      stock_Record.Open sql, WORK_Connection, 1, , adCmdTable '应为adcmdtext上面的语句只是查询supplier_stock表P_n中与chk_altpn相同的纪录,查询完后
    就执行下面的语句:
    WORK_Connection.Execute "INSERT INTO supplier_stock (qref,p_n) VALUES ('" + M_QREF + "','" + chk_altpn + "')"
    不管supplier_stock表P_n中是否有与chk_altpn相同的纪录!
    我觉得有问题
            
        
        
      

  5.   

    这个问题我不知道帮你up
    我想问你一下打开SQL数据库的方法就是你上面写的吧。
    其中的Data Source= + Server_Name中的Server_Name是数据源名还是数据库名?
      

  6.   

    if stock_record.eof then  '当stock_record到EOF时,才执行 添加语句
            WORK_Connection.Execute "INSERT INTO supplier_stock (qref,p_n) VALUES ('" + M_QREF + "','" + chk_altpn + "')"
    end if该指令已经判断了supplier_stock表P_n中是否有与chk_altpn相同的纪录
    stock_record.eof表示查询结果为空,为空当然就是表示表中无此纪录啦!无此纪录当然就可以执行添加语句,这是没有问题的!