分享

 按键精灵制作Excel表格导入access数据的脚本

 hdzgx 2019-12-14

最近接到任务要录入数据到数据库中,是将Execl表格中的数据导入到ACCESS数据文件中,对于技术人员,怎么可能会甘心复制粘贴,凑巧前段时间一直在研究按键精灵(主要是游戏太累手了),忽然眼前一亮,呵呵,几百条的数据我根本不慌。

我也是一边写逻辑,一边学习写法,跨语言学习,大家懂得。

代码:下面有讲解

这里贴上代码

  1. // access 数据文件
  2. Ret = Plugin.Access.Connect(".mdb后缀的文件", "123456")
  3. MessageBox ret // 提示是否连接到数据库中
  4. // 要打开的excel文件
  5. //Call Plugin.Office.OpenXls("Excel文件地址,")
  6. price1 = ""
  7. For i = 2 To 63 Step 1
  8. price1 = ""
  9. 纵列1 = Plugin.Office.ReadXls(1, i, 1)
  10. 纵列2 = Plugin.Office.ReadXls(1, i, 2)
  11. 纵列3 = Plugin.Office.ReadXls(1, i, 3)
  12. 纵列4 = Plugin.Office.ReadXls(1, i, 4)
  13. 纵列5 = Plugin.Office.ReadXls(1, i, 5)
  14. //输出循环 (纵列1)
  15. 处理货币 (估价)
  16. table = "表名"
  17. field = "`字段1`, `字段2`, `字段3`, `字段4`, `字段5`"
  18. value = "'" & Trim(纵列1) & "', '" & Trim(纵列2) & "', '" & Trim(纵列3) & "', '" & Trim(纵列4) & "', '" & Trim(纵列5) & "'"
  19. sql = " insert into " & table & " (" & field & ") values (" & value & ")"
  20. Ret = Plugin.Access.Query( sql )
  21. SayString sql
  22. KeyPress "Enter", 1
  23. SayString i
  24. KeyPress "Enter", 1
  25. SayString Ret
  26. KeyPress "Enter", 3
  27. Delay 300
  28. Next
  29. MessageBox "程序结束!"
  30. /**
  31. * 输出循环 查看输出信息
  32. *
  33. *
  34. */
  35. Function 输出循环(name)
  36. SayString name
  37. KeyPress "Enter", 1
  38. Delay 300
  39. End Function
  40. /**
  41. * 货币函数
  42. * 函数主要功能是 千位分组,公司金额要求千位有一个逗号 然后金额有区间用 - 隔开 如果无价之宝 就用无价之宝文字代替
  43. * 函数中用到递归处理方式
  44. */
  45. Function 处理货币(price)
  46. If price = "无价之宝" Then
  47. price1 = price
  48. Else
  49. strIs = InStr(price, "-")
  50. If strIs > 0 Then
  51. // rstrIs = InStrRev(price, "-")
  52. // lfStr = Left(price, strIs-1)
  53. // lrStr = Right(price, rstrIs-1)
  54. // 注释这块计算金额类型时有一定问题 截取100,000 字样时 返回00,000 所以换成下面这个方式
  55. L = Len(price)
  56. lfStr = Left(price, strIs-1)
  57. lrStr = Right(price, L-strIs)
  58. lfprice = 处理货币(lfStr)
  59. lfprice = 处理货币(lrStr)
  60. price1 = lfStr & "-" & lrStr
  61. Else
  62. length = Len(price)
  63. If length > 3 Then
  64. // 截取左边剩下的部分
  65. lstr = Left(price, length - 3)
  66. rstr = "," + Right(price, 3)
  67. // 返回值
  68. 处理货币(lstr)
  69. price1 = price1 + rstr
  70. Else
  71. price1 = price
  72. End If
  73. End If
  74. End If
  75. End Function

讲解:

第一步:连接 *.mdb 文件

  1. Ret = Plugin.Access.Connect("文件路径", "密码")
  2. MessageBox Ret 这个地方提示-1表示连接上文件,这个语言真是特别正常都是1表示连接上,但这是-1才能连接

这个密码要特殊说明一下,如果文件没有密码就随便打下,因为按键精灵这个我也不是特别明白,明明没有密码,但是不输入连接不上文件。

第二步:获取Excel文件数据

Call Plugin.Office.OpenXls("文件路径")

这个是调用按键精灵的内部函数 用call这个方法调用,不懂去查官方说明。

定义 price1 全局变量

进入循环部分,循环部分是Excel表格中一共有多少行,我是从第二行开始的,第一行为描述,

Plugin.Office.ReadXls 这个功能不懂自行按键精灵官方查询

进入循环初始化price1变量,for从第二行开始 到63行结束步长为1, 步长的意思就是跟 ++,加多少就写几,处理货币,是因为货币有特殊说明,要进行千位分组,并且有的物品是文字描述,有的物品还是区间模式。下面讲解,继续文本流,函数块后续补上,然后进行表名选择,字段,值添加,最好要按照sql标准去写,然后最后在执行按键精灵时,打开一个txt文档,把相关信息打印到里面,打印sql语句,执行到第几条i, 是否插入成功Ret(这个值为-1才表示插入成功) 每次执行延时300毫秒,循环完毕程序结束。

函数块讲解:

处理货币:首先判断是否是文字信息,判断完毕,不是进入价格处理,判断是否是区间金额,以 - 表示分隔符,如果存在-进入区间判断,然后截取-前面和后面的金额,然后递归进行千位分组,因为按键精灵中不存在返回值return这种函数,所以采用全部变量形式处理。

最后在重要提示一次,不要在语句后面加分号,会报错误信息,写分号是个好习惯,但是请尊重语言的力量。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多