以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]导出项目数据到ACCESS  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71187)

--  作者:chnfo
--  发布时间:2015/7/6 22:25:00
--  [求助]导出项目数据到ACCESS
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导出数据到access的错误.txt

因为不能将代码贴进来发,代码放在文本文件中了。

为什么会报错呢,代码貌似没有什么问题啊

--  作者:大红袍
--  发布时间:2015/7/6 22:35:00
--  

 测试了一下,代码没问题。

 

 但是,如果覆盖原来的accdb,就提示 表\'表B\' 已存在。


--  作者:chnfo
--  发布时间:2015/7/6 22:43:00
--  
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Access文件|*.accdb" \'设置筛选器
dlg.OverwritePrompt = True
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    If FileSys.FileExists(dlg.FileName) Then \'如果指定的文件存在
        FileSys.DeleteFile(dlg.FileName,2,2) \'则彻底删除之
    End If
end if

本来在前面,还加了这一段,如果导出的文件已经存在,先把文件删除。


但不应当提示:不能重复定义字段
这是什么意思呢
[此贴子已经被作者于2015/7/6 22:44:14编辑过]

--  作者:大红袍
--  发布时间:2015/7/6 22:50:00
--  
 代码没问题。例子发上来测试。
--  作者:chnfo
--  发布时间:2015/7/6 23:06:00
--  
附件,简化过的。原项目比较大,就不传原项目文件了。
--  作者:chnfo
--  发布时间:2015/7/6 23:07:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导出项目数据的问题.zip

这是附件

--  作者:chnfo
--  发布时间:2015/7/6 23:15:00
--  
难道是数据库中,不能有两个结构完全一样的表?

导出过程中,还提示出

多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

这是什么意思?
[此贴子已经被作者于2015/7/6 23:34:13编辑过]

--  作者:大红袍
--  发布时间:2015/7/6 23:32:00
--  

If DataTables.Contains("Temp") = False Then
    Dim q As new QueryBuilder
    \'q.ConnectionName = "Con"
    q.TableName = "Temp"
    q.SelectString = " Select \'\' as temp "
    q.Build
End If

[此贴子已经被作者于2015/7/6 23:31:55编辑过]

--  作者:chnfo
--  发布时间:2015/7/6 23:36:00
--  
如果我本身就在项目中增加了一个临时表Temp,应当不需要这个判断,但执行还是报错。
[此贴子已经被作者于2015/7/6 23:49:05编辑过]

--  作者:chnfo
--  发布时间:2015/7/7 0:22:00
--  
百度了一下,发现类似的答案是:
在DBF中 字段名不能重复 而且长度为10个字符(5个汉字,在DBC中没有此限制) 检查字段名。
难道跟字段名的长度有关?