如何让窗体 获取(更新) access表中的数据

leikaiwei 2018-05-30 06:48:00
我有一个程序 窗体上有2个文本框
ID 和 姓名
对应【学生表】中的字段 ID 和 姓名


现在有个问题就是,当在ID文本框中输入一个编号,比如123

代码中的逻辑是 从sqlserver获取对应id的数据,并insert到access【学生表】中

然后代码使用 Me.Requery 刷新后,程序会试图吧窗体文本框中ID=123的值,插入到【学生表】中

但是这个表里已经有该条数据了(从sqlserver中查询并insert进来的)

就会提示主键冲突异常

(想要的效果是:窗体上的文本框 按照变更后的【学生表】中的数据,进行显示)
...全文
3088 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
白羊叶子Baby 2018-05-31
  • 打赏
  • 举报
回复
你可以仔细看下access里面表的主键是哪个,如果在access表中你的ID是主键,重复插入是会冲突啊,也可以先判断如果ID已存在则更新,不存在则插入;不过access的确不如SQL。我现在已经放弃Access,专心SQL来做了。
leikaiwei 2018-05-30
  • 打赏
  • 举报
回复
现在就是mdb里是好的,但是升级到accdb就不行了。。 代码里从sqlserver把数据insert到中间表(access表) 然后执行Me.requery 窗体上就会“读取并显示”access表的数据 而现在在office2016里,同样的代码,Me.requery后 他是把窗体里的数据,insert到access表里。。 这样有问题啊 求帮助
leikaiwei 2018-05-30
  • 打赏
  • 举报
回复
引用 1 楼 chewinggum 的回复:
新数据第一次入库用insert 其后对已有数据的修改要用update. 当然你的逻辑如果做得够野蛮,也可以每次都先delete一下然后再insert。 匪夷所思的是为啥要从sqlserver把数据提取过来然后放到aceess里?所有的数据都在SQLserver里面不行么。
在给客户改修一个mdb,现在给他们升级成accdb了。。 里面有几个功能就是这样的 窗体绑定的一个access表 ,而这个表里的数据 就是每次delete掉,然后从sqlserver里 insert xxxxxxx selectxxxxxxx
脆皮大雪糕 2018-05-30
  • 打赏
  • 举报
回复
新数据第一次入库用insert 其后对已有数据的修改要用update. 当然你的逻辑如果做得够野蛮,也可以每次都先delete一下然后再insert。 匪夷所思的是为啥要从sqlserver把数据提取过来然后放到aceess里?所有的数据都在SQLserver里面不行么。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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