ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3252|回复: 3

Access使用代码导入数据时的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-3-30 14:06 | 显示全部楼层 |阅读模式
我想实现的目的是:把所有txt文件中的数据导入到t_SUP表中。
窗体frmImportSUP中的Import All用于实现这目的。
我代码的步骤是:
1 判断txt文件名是否符合规则,
2 清空t_TmpSUP表
3 导入txt文件的数据到t_TmpSUP表
4 删除t_SUP表中与t_TmpSUP表SUP列重复的数据
5 把t_TmpSUP表中的内容放入t_SUP表中

我发现测试代码时,使用单步执行的方法可以实现我的目的。但如果使用按钮让程序一次完成,代码的要求往往无法实现,不是数据重复导入,就是没有数据导入。
请问如何解决,是否是access使用代码有什么特殊技巧,谢谢。

db.zip

179.32 KB, 下载次数: 42

TA的精华主题

TA的得分主题

发表于 2009-4-6 21:00 | 显示全部楼层
Private Sub Command0_Click()
'=====================导入数据
DoCmd.SetWarnings False

If ExistTable("t_TmpSUP") = True Then
DoCmd.RunSQL "delete * from t_TmpSUP"
End If

Dim ss, ss1, tempstr, iline, aa, txetname
ss = ""
txetname = Me.TxetA
aa = CurrentProject.Path & "\" & txetname & ".txt"
Open aa For Input As #1
iline = 0
Do While Not EOF(1)
   Line Input #1, tempstr
   tempstr = Trim(Mid(tempstr, 1, 20)) & "," & Trim(Mid(tempstr, 21, 22)) & "," & Trim(Mid(tempstr, 34))
ss = ss & tempstr & vbCrLf
iline = iline + 1
Loop

Close #1
Open CurrentProject.Path & "\abc.txt" For Output As #2
Print #2, ss
Close #2

DoCmd.TransferText acImportDelim, "me", "t_TmpSUP", CurrentProject.Path & "\abc.txt", False

If Dir(CurrentProject.Path & "\abc.txt") <> "" Then
Kill CurrentProject.Path & "\abc.txt"
End If
'=====================追加数据
DoCmd.RunSQL "delete * from t_SUP where SUP in (select SUP from t_TmpSUP);", False
DoCmd.RunSQL "INSERT INTO t_SUP SELECT * FROM t_TmpSUP;", False

DoCmd.SetWarnings True
End Sub
Private Function ExistTable(strTableName As String) As Integer
    Dim i As Integer
    ExistTable = False
    For i = 0 To CurrentData.AllTables.Count - 1
        If strTableName = CurrentData.AllTables(i).Name Then
            ExistTable = True
            Exit For
        End If
    Next i
End Function

db.rar

83.9 KB, 下载次数: 59

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-28 11:47 | 显示全部楼层
请问
DoCmd.TransferText acImportDelim, "me", "t_TmpSUP", CurrentProject.Path & "\abc.txt", False
中第二个参数"me"是如何配置的?我进行了很多搜索都找不到相应的资料。谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-28 12:09 | 显示全部楼层
我找到配置TransferText 中第二个参数的方法了:
文件-》导入外部数据-》导入-》选择文本文件,单击高级按钮,在这个对话框中可以配置“规格”设置。
http://www.office-cn.net/vvb/viewthread.php?tid=61246&highlight=TransferText
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 00:43 , Processed in 0.032218 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表