'保存文件到数据库中(MyYbTxt表:字段包含Ymd和Hpdj)
Sub s_SaveFile(sYmd, svFile)
  Dim iStm     As ADODB.Stream
  Dim iRe     As ADODB.Recordset
  Dim cSql As String
  '读取文件到内容
  Set iStm = New ADODB.Stream
  With iStm
         .Type = adTypeBinary           '二进制模式
          .Open
         .LoadFromFile svFile
  End With
  '打开保存文件的表
  Set iRe = New ADODB.Recordset
  cSql = "Select ymd from MyYbTxt Where ymd=#" & sYmd & "#"
  iRe.Open cSql, iConc, adOpenKeyset, adLockOptimistic
  If iRe.RecordCount <= 0 Then
    iRe.Close
    With iRe
         .Open "MyYbTxt", iConc, adOpenKeyset, adLockOptimistic
         .AddNew                   '新增一条记录
          .Fields("Ymd") = sYmd
         .Fields("Hpdj") = iStm.Read
         .Update
         .Close
    End With
  Else
    iConc.Execute ("Update MyYbTxt set Hpdj=" & iStm.Read & " Where Ymd=#" & sYmd & "#")
  End If
'完成后关闭对象
  iStm.Close
  iConc.Close
End Sub
问题出在红色行,提示“UPDATE 语句的语法错误”,我检查不出来,是不是出在iStm.Read 这里,请高手指点。

解决方案 »

  1.   


    debug.print "Update MyYbTxt set Hpdj=" & iStm.Read & " Where Ymd=#" & sYmd & "#"
    '拷贝立即窗口的语句,放数据库查询器里看看
    '这样你就可以检查出来是什么问题了..... iConc.Execute "Update MyYbTxt set Hpdj=" & iStm.Read & " Where Ymd=#" & sYmd & "#")
      

  2.   

    如果iRe已经查询到若干记录,我想对iRe使用Find方法定位记录,然后再更新数据,可是我不熟悉Find后面参数怎么写,楼上大虾再指点一下,谢谢!
      

  3.   

    找到Find使用方法了,结贴了。