ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

在EXCEL中操作ACCESS库

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-9-8 10:38 | 显示全部楼层
这个是我要学习的,谢谢了

TA的精华主题

TA的得分主题

发表于 2012-9-16 18:46 | 显示全部楼层
zhexie neir queshi tai qiangda le

TA的精华主题

TA的得分主题

发表于 2012-9-28 09:57 | 显示全部楼层
本帖最后由 samuel-he 于 2012-9-28 09:58 编辑

请求帮助修改代码?
将Access的资料选择性的汇入到EXCEL表里,
现在可以根据需要汇入到EXCEL表里,(有些不需要)
问题是:
我想汇出的资料指定对应的列
如:现在汇入的:客户组别在A列   现在想改为  A列
                客户    在B列   现在想改为  C列
                货品编号在C列   现在想改为  D列,
                .......  没有任何规律,汇入的每一个标题都指定一列。
(详情如附件)
请高人帮助修改代码


这一个代码,怎样指定对应列??
Set rst = conn.Execute("Select 客户组别,客户,货品编号,产品名称,材料费,数量,总售金额,材料总费用,销售总毛利 from TableB")


原代码
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Sub ExportToExcel()
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\DBBASE.MDB;" & _
   "Jet OLEDB:Engine Type=4"
Set rst = conn.Execute("Select 客户组别,客户,货品编号,产品名称,材料费,数量,总售金额,材料总费用,销售总毛利 from TableB")
ActiveSheet.Name = "ExportToExcel"
For Each Field In rst.Fields
[a1].Offset(0, i) = Field.Name
i = i + 1
Next
Range("A2").CopyFromRecordset rst
conn.Close
Set conn = Nothing
End Sub


指定汇出列.rar

22.27 KB, 下载次数: 47

TA的精华主题

TA的得分主题

发表于 2012-9-29 10:10 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-30 17:22 | 显示全部楼层
samuel-he 发表于 2012-9-28 09:57
请求帮助修改代码?
将Access的资料选择性的汇入到EXCEL表里,
现在可以根据需要汇入到EXCEL表里,(有些 ...

Set rst = conn.Execute("Select 客户组别,'',客户,'',货品编号,'','',材料费,'',产品名称,'',数量,'',总售金额,'',材料总费用,'','','',销售总毛利 from TableB")

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-6 17:41 | 显示全部楼层
fanion 发表于 2008-10-11 21:50
太谢谢了,学习学习!!!!

kankan  xuex  xuex

TA的精华主题

TA的得分主题

发表于 2012-10-7 11:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 samuel-he 于 2012-10-7 20:07 编辑

各位老师:请教一个加密的问题:
说明1:
1.我的本机电脑名称:wally
2.在我的本机共享一个资料夹名称:palan
3.palan  内存放了一个数据库:名称:standard
4.我给standard 加了一个密码:123456

说明2:
1.用EXCEL VB修改数据库的资料(以识别码为准,如果有识别码为修改原有资料,没有则新增加)
2.现在代码在standard没有加密码的情况下可以进行新增修改:


问题:
在standard有加密情况下进行修改(以识别码为准,如果有识别码为修改原有资料,没有则新增加)

请问这个代码怎样修改??

原代码(请在原代码上进行修改)

Private Sub CommandButton1_Click()
'2.新增产品标准资料到数据库standard 的工作表 Product
    Dim product As String, myTable As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim i As Long, j As Long
    Dim myCat As New ADOX.Catalog
    Dim myCmd As ADODB.Command
    Dim cnn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("产品标准") '当前EXCEL工作表名称
    product = "
\\WALLY\palan\standard.MDB" '数据库名称 standard
    myTable = "Product" '数据库工作表名称
    If Dir(product) = "" Then

    myCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & product
       Set cnn = myCat.ActiveConnection
    Set myCmd = New ADODB.Command
    Set myCmd.ActiveConnection = cnn
    myCmd.CommandText = "CREATE TABLE " & product _
    & "(编码 Text(150),拉别 text(150),客户 text(150)内部料号 text(150),客户料号 text(150),部品 text(150),规格 text(150),用量 Single,准备工时 Single,标准工时 Single,10H产能 Single)," _
    & "(备注1 text(150),备注2 text(150),时间 date(150),电脑 text(150),用户 text(150)),"
    myCmd.Execute , , adCmdText
    Else
    Set cnn = New ADODB.Connection
    With cnn
   .Provider = "microsoft.jet.oledb.4.0"
   .Open product
    End With
    Set rs = cnn.OpenSchema(adSchemaTables)
    Do Until rs.EOF
    If LCase(rs!table_name) = LCase(myTable) Then GoTo hhh
    rs.MoveNext
    Loop
    Set myCmd = New ADODB.Command
    Set myCmd.ActiveConnection = cnn
    myCmd.CommandText = "CREATE TABLE " & product _
    & "(编码 Text(150),拉别 text(150),客户 text(150)内部料号 text(150),客户料号 text(150),部品 text(150),规格 text(150),用量 Single,准备工时 Single,标准工时 Single,10H产能 Single)," _
    & "(备注1 text(150),备注2 text(150),时间 date(150),电脑 text(150),用户 text(150)),"
    myCmd.Execute , , adCmdText
hhh:
    End If
    n = ws.Range("A65536").End(xlUp).Row
    For i = 3 To n '第3行开始
    If ws.Cells(i, 17).Value <> "" Then
    SQL = "select * from product where 识别码=" & ws.Cells(i, 17).Value
    Else
    SQL = "select * from product"
    End If
    Set rs = New ADODB.Recordset
    rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
    If rs.RecordCount = 0 Or ws.Cells(i, 17).Value = "" Then
    rs.AddNew
    For j = 1 To rs.Fields.Count - 1
    rs.Fields(j - 1) = ws.Cells(i, j).Value
    Next j
    rs.Update
    Else
    For j = 1 To rs.Fields.Count - 1
    rs.Fields(j - 1) = ws.Cells(i, j).Value
    Next j
    rs.Update
    End If
    Next i

    MsgBox "^-^  存储成功! ^-^", vbInformation, "系统提示! "
    rs.Close
    cnn.Close
    Set wb = Nothing
    Set ws = Nothing
    Set rs = Nothing
    Set myCmd = Nothing
    Set myCat = Nothing
    Set cnn = Nothing
      End If

End Sub

修改数据库.rar

66.39 KB, 下载次数: 45

palan.rar

88.67 KB, 下载次数: 39

TA的精华主题

TA的得分主题

发表于 2012-10-11 14:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
确实是好东西。谢楼主分享。

TA的精华主题

TA的得分主题

发表于 2012-10-18 10:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习下  还是不懂

TA的精华主题

TA的得分主题

发表于 2012-11-12 15:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
老师,请问怎么在word中利用vba编写代码弹出对话框选择数据库文件,然后调用access数据啊~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-24 23:59 , Processed in 0.041718 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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