设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: wt565
打印 上一主题 下一主题

[模块/函数] 请教如何将数组里的数据导入到表里去?谢谢

[复制链接]
11#
发表于 2013-6-22 12:37:24 | 只看该作者
wt565 发表于 2013-6-21 16:48
附件里是我的数据库和待导入的TXT文件
表PI1已经建好了。
窗体里有一个按键。希望按下按钮就可以执行TXT ...

如果你是襄樊直接导入的话就不能用我上面的方法了
12#
 楼主| 发表于 2013-6-22 13:03:13 | 只看该作者
本帖最后由 wt565 于 2013-6-22 13:05 编辑
竹笛 发表于 2013-6-22 12:37
如果你是襄樊直接导入的话就不能用我上面的方法了

我的TXT不能直接导入表,因为TXT的数据列是按宽度定位的,而且还有一些多余的表头等要删除。所以我只好把TXT的有效数据赋值到一个二维数组。然后在将这个二维数组导入到表里。之后怎么导入到Access的表里就不知道怎么搞了。
13#
 楼主| 发表于 2013-6-22 13:06:11 | 只看该作者
而且这句 FileName = Application.GetOpenFilename("txt,*.txt", , "select", , False) 在ExcelVBA里可以运行,在ACCESS VBA里运行似乎也有问题
14#
发表于 2013-6-22 14:13:18 | 只看该作者
本帖最后由 cgsilicone 于 2013-6-22 14:18 编辑
wt565 发表于 2013-6-22 13:06
而且这句 FileName = Application.GetOpenFilename("txt,*.txt", , "select", , False) 在ExcelVBA里可以运 ...

GetOpenFilename是VBE(VB FOR EXCEL) 提供的函数,在ACCESS中不能使用。
下面提供一种使用EXCEL中功能的好办法:
Set EXCEL的功能 = CreateObject("EXCEL.Application")
EXCEL的功能.Visible = True
FileName = EXCEL的功能.GetOpenFilename("txt,*.txt", , "select", , False)
EXCEL的功能.Quit
15#
发表于 2013-6-22 14:54:59 | 只看该作者
本帖最后由 cgsilicone 于 2013-6-22 15:31 编辑

你的附件我的版本打不开。不用很复杂的知识,你的代码略微修改,直接就存入数据库中了(不需要二维数组),代码如(经测试有效)下:

Private Sub Command0_Click()


Set EXCEL的功能 = CreateObject("EXCEL.Application")
EXCEL的功能.Visible = True
FileName = EXCEL的功能.GetOpenFilename("txt,*.txt", , "select", , False)
EXCEL的功能.Quit

Set 数据表 = CurrentDb.OpenRecordset("表1", dbOpenDynaset)

Open FileName For Input As #1
aa = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
m = 0
For i = 5+1 To UBound(aa)
        If Len(Trim(aa(i))) < 50 Then GoTo L1
        If InStr(aa(i), "-------") > 0 Then GoTo L1
        If InStr(aa(i), "Custname") > 0 Then GoTo L1

         数据表.AddNew
         数据表.Fields(0) = Trim(Left(aa(i), 45))
         数据表.Fields(1) = Trim(Mid(aa(i), 46, 26))
         数据表.Fields(2) = Trim(Mid(aa(i), 73, 26))
         数据表.Fields(3) = Trim(Mid(aa(i), 100, 38))
         数据表.Fields(4) = Trim(Mid(aa(i), 139, 25))
         数据表.Update
         m = m + 1
L1:  Next

数据表.Close
Set 数据表 = Nothing

MsgBox "导入数据成功,共导入" & m & "条"

End Sub





16#
 楼主| 发表于 2013-6-22 16:54:21 | 只看该作者
本帖最后由 wt565 于 2013-6-22 17:33 编辑
cgsilicone 发表于 2013-6-22 14:54
你的附件我的版本打不开。不用很复杂的知识,你的代码略微修改,直接就存入数据库中了(不需要二维数组), ...

多谢达人指点。 经过调试,成功了。
你太伟大了!!!终于可以使用了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-7 06:53 , Processed in 0.094421 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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