首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • VBA问题请教
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 22:44:10 楼主
    请教各位VBA高手,如何用程序实现将不同的EXCEL工作薄导入已有的不同ACCESS数据表中
    例如:将 JSPOINT.XLS,JSLINE.XLS,PSPOINT.XLS,PSLINE.XLS
        导入 数据库.MDB中的JSPOINT,JSLINE,PSPOINT,PSLINE数据表中
          注:EXCEL表名与ACCESS表名是对应的
    急急急急急急急急
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • okexcel
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 06:43:031楼 得分:0
    0分的问题自己解决吧!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 15:29:202楼 得分:0
    我当时发帖子的时候我加分了,可是不让我加,所以就0分了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 15:30:553楼 得分:0
    我已经加分了,哪位高手帮忙解决一下,十分感谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fvflove
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-08-25 15:48:164楼 得分:0
    我们都知道,Excel的文件结构.下面我就说一说:
    工作表为: Test.Xls  里面有工作本: Sheet1 Sheet2 Sheet3 或更多的工作本.
    对于每一个工作本来说:比说 Sheet1 他在256列.65536行.(但不是说每一行,每一列都有数据)
    也就是说一作Excel表格里面有N个表格,每个表格是不定行,不定列的.

    好了.现在再来说你的问题.一个数据库.里面有一个表格.第是对应Excel文档里面的Sheet1工作表还是对应Sheet2工作表?
    对于你的工作表来说,你的列数是否有定义.(是否是个空表.结构都没有.)如果是这样,那还要建立表的结构.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mokton
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 17:01:065楼 得分:0
    http://download.csdn.net/source/561006
    http://download.csdn.net/source/549064
    看看我以上的两个例程你的问题就可以得到解决了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lsftest
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 23:28:356楼 得分:0
    这要看你的编程的立足点是哪里?是用access里的vba?还是用excel里的vba?还是另外用vb写?
    不过这三种方法都可以通过调用access内部的导入功能来轻松实现目的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • okexcel
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 06:49:027楼 得分:0
    引用 6 楼 lsftest 的回复:
    这要看你的编程的立足点是哪里?是用access里的vba?还是用excel里的vba?还是另外用vb写?
    不过这三种方法都可以通过调用access内部的导入功能来轻松实现目的。


    正解!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-30 16:29:418楼 得分:0
    只把每个EXCEL 里的SHEET1导入ACCESS表中,而且ACCESS中的表结构与EXCEL中SHEET1中的字段名称是一样的,结构也相同,EXCEL中SHEET1都不是空表。
    我想用EXCEL里的VBA实现。
    哪位高手帮我解决一下,谢谢!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiaxsheng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-31 18:04:199楼 得分:0
    晕!!
    用Excel Vba 连接access数据库,用sql文一条一条插进去。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fooltutu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 10:10:3910楼 得分:0
    我记得有本参考书里好象是把格式转变一下就可以了.具体的记不清了.
    或者是你用你录制宏把一条记录插入ACCESS中,看下生成的宏代码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenjl1031
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2008-09-01 13:26:4111楼 得分:0
    这个问题不复杂,找本教科书看看就可以解决的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baoguangya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-02 14:46:5512楼 得分:0
    首先,用VBA获取某个EXCEL表中一条记录的值不难吧。

    现在假设你获取了JSPOINT表中的一条记录(假设共6个字段),分别为A,B,C,D,E,F,如果你要把这六个值导入到ACCESS数据库的表中。则:

    VB code
    Function TransData(a As String, b As String, c As String, d As String, e As String, f As String) Dim conn As New ADODB.Connection Dim com As New ADODB.Command conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Documents and Settings\Administrator\桌面\abc.mdb" conn.Open com.CommandType = adCmdText com.CommandText = "Insert Into JSPOINT Values('" & a & "','" & b & "','" & c & "','" & d & "','" & e & "','" & f & "')" com.ActiveConnection = conn com.Execute conn.Close Set com = Nothing Set conn = Nothing End Function


    依次读取每一条记录,然后依次导入到ACCESS数据库中即可。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baoguangya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-02 14:48:4913楼 得分:0
    补充一句,这个函数需要添加对“Microsoft ActiveX Data Objects 2.8 Library”的引用。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-06 11:08:0214楼 得分:0
    用VBA把一个EXCEL中的SHEET1表导入ACCESS 中指定的表中我早就实现了,我现在想问的是把多个EXCEL文件中的SHEET1导入一个ACCESS中的多个指定的表中,好像大家都没有理解我的意思?说明EXCEL表结构与ACCESS中表结构完全相同。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baoguangya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-06 11:58:2415楼 得分:0
    用QueryTable先查询出每个EXCEL文件的SHEET1数据,然后再导入ACCESS:

    VB code
    Sub TTT() Dim fs As New Scripting.FileSystemObject Dim qt As QueryTable Dim sqlSelect As String Dim sqlFrom As String Const InvPath As String = "Z:\test" sqlSelect = "[Sheet1$a:d].Location, [Sheet1$a:d].Code, [Sheet1$a:d].Qty, [Sheet1$a:d].Unit" sqlFrom = "[" & InvPath & "].[Sheet1$a:d] [Sheet1$a:d]" With ThisWorkbook.Sheets(1) .Range("a1:d65536").ClearContents Set qt = .QueryTables.Add("ODBC;DSN=Excel Files;DBQ=" & InvPath & ".xls" & ";DriverId=790;", .Range("a1"), "Select " & sqlSelect & " From " & sqlFrom ) qt.FieldNames = True qt.Refresh False End With End Sub

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dongqiu_78
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-18 20:36:4516楼 得分:0
    15楼的,你那个如何打开MDB数据库啊?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved