Recordset addnew时,写入少量数据可以,稍多一点数据就出错

skya2006 2017-05-13 05:28:14
一个ACCESS文档 , 孟加拉 达卡海关提供的
文档的功能是把手工录入的空运舱单信息自动转换成XML格式向达卡机场海关申报

我现在想把原来需要手工录入的舱单信息改成自动录入舱单信息
舱单信息数据源是Main_FFM()二维数组,已经用正则表达式抓取了所有需要录入的数据
测试用的 Main_FFM(15,11) as string

目前遇到的问题是,如下面代码所示,当我用addnew 更新整个Main_FFM()数组时,更新到第4行报错自动停止,
而且没有出错提示,可能是ACCESS文档做了设置禁止了出错提示

当我只更新11列中的任意小部分列时(1-4列),整个数组共15行数据都可以正常更新。。。。。。
当我只更新11列中的任意大部分列时(6-8列),,更新到第8或者第9行报错自动停止,。。。。。。
我现在怀疑文档中是不是限制了更新的数据量,一次不能更新太多数据?

请教各位大神我的怀疑正确否?怎么搞??


问题已找到,其中一个字段限制35字符

由于原始数据里此字段也限制为35字符,所以刚开始我没有考虑这个问题
但正则表达式抓数据时把一些不显示的特殊字符也抓了,所以此字段的某些行超35字符。。。。。
由于文档没有错误提示,搞死我了


那位回复一下,我送分结贴了

代码如下
'//////////////////////////////////////////////////////////

Dim dbx As Database
Dim rstx As Recordset

Set dbx = CurrentDb

Set rstx = dbx.OpenRecordset("shipping_bol")

For rawb = 1 To Line_number

rstx.AddNew

rstx!Customs_office_code.Value = Customs_office_code
rstx!Voyage_number.Value = Voyage_number
rstx!Date_of_departure.Value = Date_of_departure
rstx!Bol_reference.Value = Main_FFM(rawb, 1)
rstx!Line_number.Value = CInt(Main_FFM(rawb, 2))
rstx!Consolidated_Cargo.Value = Main_FFM(rawb, 3)
rstx!Port_of_origin_code.Value = Main_FFM(rawb, 4)
rstx!Place_of_unloading_code.Value = "BDDAC"
rstx!Exporter_name.Value = Main_FFM(rawb, 5)
rstx!Exporter_address.Value = Main_FFM(rawb, 6)
'rstx!Notify_name.Value = Main_FFM(rawb, 7)
'rstx!Notify_address.Value = Main_FFM(rawb, 8)
'rstx!Consignee_name.Value = Main_FFM(rawb, 7)
'rstx!Consignee_address.Value = Main_FFM(rawb, 8)
rstx!Number_of_packages.Value = CInt(Main_FFM(rawb, 9))
rstx!Gross_mass.Value = CDbl(Main_FFM(rawb, 10))
rstx!Goods_description.Value = Main_FFM(rawb, 11)
rstx!Num_of_ctn_for_this_bol.Value = 0

rstx.Update
MsgBox "写入数据库第" & rawb & "行完成"

Next
rstx.Close
Set rstx = Nothing




...全文
438 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧