| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1955 人关注过本帖
标题:突破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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册: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
帖 子:4947
专家分:30084
注 册: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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册: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
快速回复:突破Excel版本限制写入dbf数据库
数据加载中...
 
   



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

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