标题:突破Excel版本限制写入dbf数据库
只看楼主
foreach
Rank: 2
等 级:论坛游民
帖 子:30
专家分:57
注 册:2020-4-15
结帖率:14.29%
已结贴  问题点数:20 回复次数:4 
突破Excel版本限制写入dbf数据库

如想将Excel内容写入空白的dbf数据库文件中对应列,不限于excel版本
如何通过VB实现?

如何脱离excel版本限制写入dbf数据库.rar (7.37 KB)
搜索更多相关主题的帖子: dbf Excel 写入 数据库 版本 
2021-12-23 10:48
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
1、在装有VFP的机上可用引用VFP对象操作DBF
2、没有装VFP的机上只可按DBF格式从底层直接读写DBF文件
2021-12-23 11:30
foreach
Rank: 2
等 级:论坛游民
帖 子:30
专家分:57
注 册:2020-4-15
得分:0 
回复 2楼 吹水佬
可以提供代码吗?
实在不知道怎么写入,谢谢
2021-12-24 08:26
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
xls 文件,可以使用 ADO 数据库引擎当数据库打开。
xlsx 文件,ADO不知道能不能支持。它本身是一个ZIP压缩包,里面有一个 xml 文件,里面定义了每个单元格的数据。

DBF ,可以使用ADO打开,使用数据库操作命令去操作。

----------------------------
需要手动操作DBF 的话,那就自己 解析 DBF 吧
DBF 文件好像是分三段结构,文件头+字段定义表+数据,具体百度下吧,都忘光了。
其中字段定义表定义了有多少个字段,每个字段名 及 字段占用字节数,汉字算2个字符
数据是每行数据+1个标志位构成。自己 按字段字义,拼接成BYTE数组 ,一次性写入,读取是也指定位置读指定多少字节到BYTE数组中,然后根据字段进行拆解,得到结果。

授人于鱼,不如授人于渔
早已停用QQ了
2021-12-25 16:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用foreach在2021-12-24 08:26:19的发言:

可以提供代码吗?
实在不知道怎么写入,谢谢

直接在EXCEL测试(已安装VFP)

程序代码:
Private Sub CommandButton1_Click()
    Dim oFox As Object
    Set oFox = CreateObject("VisualFoxPro.Application")
    oFox.DoCmd "CREATE TABLE C:\temp\test.dbf (f1 I,f2 I,f3 I)"
    oFox.DoCmd "INSERT INTO test VALUES (11,12,13)"
    oFox.DoCmd "INSERT INTO test VALUES (21,22,23)"
    oFox.DoCmd "GO TOP IN 'test'"
    oFox.DataToClip "test", , 3
    Cells(1, 1).Select
    ActiveSheet.Paste
    oFox.DoCmd "INSERT INTO test VALUES (" & Cells(2, 1).Value & "," & Cells(2, 2).Value & "," & Cells(2, 3).Value & ")"
    oFox.DoCmd "INSERT INTO test VALUES (" & Cells(3, 1).Value & "," & Cells(3, 2).Value & "," & Cells(3, 3).Value & ")"
    oFox.DoCmd "GO TOP IN 'test'"
    oFox.DataToClip "test", , 3
    Cells(5, 1).Select
    ActiveSheet.Paste
    oFox.DoCmd "USE IN 'test'"
End Sub
2021-12-26 16:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507966-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058120 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved