+ -
当前位置:首页 → 问答吧 → 实时错误‘3001’

实时错误‘3001’

时间:2011-07-20

来源:互联网

[code=VB][/code]Private Sub into_Click() '导入
 Dim sql As String
 Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim mycon As New ADODB.Connection
Dim yourRecord As New ADODB.Recordset
Dim myRecord As New ADODB.Recordset

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("E:\backup.xls") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
sql = jitaihao.Combo1.Text
Set xlSheet = xlBook.Worksheets(sql) '设置活动工作表
If Val(xlApp.Application.Version) >= 8 Then
  Set xlSheet = xlApp.ActiveSheet
  Else
  Set xlSheet = xlApp
   
  End If
   
  mycon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\10.10.0.250\图形流向\sclsylb.mdb;Persist Security Info=False"
  mycon.Open
  mycon.CursorLocation = adUseClient
  Dim sqstr As String
  sqstr = "select * from sql"
   
  yourRecord.Open sqstr, myConn, 2, 4 '打开记录集
  myRecord.Open "select * from fields order by 图号", myConn, adOpenDynamic, adLockBatchOptimistic '打开字段记录集
  myRecord.MoveFirst
  Dim v '导入记录,用了两层循环
  v = 1
  Do
  If Trim$(xlSheet.Cells(v, 1)) = "" Then Exit Do '外层,如果EXCEL表中读取到空行,结束
  yourRecord.AddNew
   
  Dim i As Integer
  Dim new_value As String
  For i = 1 To myRecord.RecordCount
  ' Get the next value.
  new_value = Trim$(xlSheet.Cells(v, i))

  ' See if it's blank.
  If Len(new_value) = 0 Then Exit Do
   

  ' Insert the value into the database.
   
   
  Dim bb As String
   
  bb = myRecord("图号")
   
  yourRecord(bb) = new_value
   
  myRecord.MoveNext
   
  Next i
  v = v + 1
  myRecord.MoveFirst
  Loop
  yourRecord.Update
  xlApp.ActiveWorkbook.close False
  ' Close Excel.
  xlApp.Quit
  Set xlSheet = Nothing
  Set xlApp = Nothing
  myRecord.close
yourRecord.close
Set myRecord = Nothing
Set yourRecord = Nothing
End Sub

作者: zhd327   发布时间: 2011-07-20

这是我把excel表中记录导入access中,但在导入时我按现有的fileds表的字段来使excel逐条导入避免顺序乱,可为何出现3001实时错误呢 大侠帮忙斧正

作者: zhd327   发布时间: 2011-07-20

贴这么多代码,你起码得告诉别人哪句代码错了。

作者: BestBadGod   发布时间: 2011-07-20

yourRecord.Open sqstr, myConn, 2, 4 '打开记录集
提示就是上面的

作者: zhd327   发布时间: 2011-07-20

呵呵3001解决了 可出现了3021实时错误:myRecord.MoveFirst老是提示 这是为何

作者: zhd327   发布时间: 2011-07-20

看看确实有记录没

作者: BestBadGod   发布时间: 2011-07-20

把myRecord.MoveFirst改为:
if not myRecord.Bof then myRecord.MoveFirst

作者: Veron_04   发布时间: 2011-07-20