Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将数据从Access 365导出到IBM i系列v7r1_Vba_Ms Access_Db2_Db2 400 - Fatal编程技术网

Vba 将数据从Access 365导出到IBM i系列v7r1

Vba 将数据从Access 365导出到IBM i系列v7r1,vba,ms-access,db2,db2-400,Vba,Ms Access,Db2,Db2 400,有人在这方面取得了成功吗 1.)我想将Access 365中的表和表单设计为UI 2.)在IBM i-series上创建新的库存事务批次表(库存事务批次标题和库存事务详细信息项) 3.)将交易记录“过账”到库存交易记录明细项目 4.)保存并关闭批次 我目前拥有从I系列获取数据并使用ODBC将其导入access的“只读”权限,但我想知道是否有方法将数据“写入”到上述两个表相关的表中 batch header表和transaction detail表都使用生成的(唯一的)序列号,因此我认为必须“查找

有人在这方面取得了成功吗

1.)我想将Access 365中的表和表单设计为UI

2.)在IBM i-series上创建新的库存事务批次表(库存事务批次标题和库存事务详细信息项)

3.)将交易记录“过账”到库存交易记录明细项目 4.)保存并关闭批次

我目前拥有从I系列获取数据并使用ODBC将其导入access的“只读”权限,但我想知道是否有方法将数据“写入”到上述两个表相关的表中

batch header表和transaction detail表都使用生成的(唯一的)序列号,因此我认为必须“查找”最高值,并锁定新值,以便其他用户不能重复使用它们


只是“困难”或“不可能”?

首先,要意识到v7r1已经有10多年的历史了,并且已经有一段时间不受支持了……您可能会遇到驱动程序问题,尤其是在支持的Windows版本上运行时

ODBC是双向的…写和读一样简单。但是您需要对表的写入权限,也就是CHG权限

已经很多年了,但是IIRC您可以使用一个访问链接表来直接读/写i上的表。但我不推荐它用于大型(或重要)桌子

有一件事通常会让新手感到困惑,那就是默认情况下ODBC会尝试使用事务,也就是承诺控制。要使其工作,表必须记录在i上。或者,您可以在连接上将提交级别设置为*NONE

过去,我在Access的较旧版本中创建了VBA应用程序,这些版本使用SQL来写入IBMi表。我认为这一切仍然是可能的。但是,您可能希望写入某种暂存表,然后让一个进程将数据移动到生产表中

老实说,如果你懂其他语言……我会重新考虑使用Access

生成(唯一)顺序

如果它是实际生成的,也就是一个SQL标识列,那么它不应该是一个问题,当您进行插入时,不要指定该列,DB将生成下一个值

但是,IBMi上较旧的应用程序不太可能实际使用标识列。如果幸运的话,序列号将存储在其他一些表中,您可以读取和更新这些表


如果序列存储在数据区域中,则可能需要编写一个(外部)SQL存储过程来与之交互

首先—要知道v7r1已经有10多年的历史了,并且已经有一段时间不受支持了……您可能会遇到驱动程序问题,尤其是在受支持的Windows版本上运行时

ODBC是双向的…写和读一样简单。但是您需要对表的写入权限,也就是CHG权限

已经很多年了,但是IIRC您可以使用一个访问链接表来直接读/写i上的表。但我不推荐它用于大型(或重要)桌子

有一件事通常会让新手感到困惑,那就是默认情况下ODBC会尝试使用事务,也就是承诺控制。要使其工作,表必须记录在i上。或者,您可以在连接上将提交级别设置为*NONE

过去,我在Access的较旧版本中创建了VBA应用程序,这些版本使用SQL来写入IBMi表。我认为这一切仍然是可能的。但是,您可能希望写入某种暂存表,然后让一个进程将数据移动到生产表中

老实说,如果你懂其他语言……我会重新考虑使用Access

生成(唯一)顺序

如果它是实际生成的,也就是一个SQL标识列,那么它不应该是一个问题,当您进行插入时,不要指定该列,DB将生成下一个值

但是,IBMi上较旧的应用程序不太可能实际使用标识列。如果幸运的话,序列号将存储在其他一些表中,您可以读取和更新这些表

如果序列存储在数据区域中,则可能需要编写一个(外部)SQL存储过程来与之交互