VBA编程问题,如何匹配主键

VBA编程问题,如何匹配主键,第1张

不知 n=100 有啥用?

执行后在“if (openterm) then”提示“类型不匹配”是因为你定义了openterm为variant数据类型,而返回值则不是这个类型。

大概看了下,好像返回值为空时会出现“类型不匹配”的提示。

可以把openterm = ws.Range("B" &open1)改为:

If ws.Range("B" &open1) <>"" Then openterm = ws.Range("B" &open1)

是指按钮设置吗?

在菜单选择“选项”→“手柄”→“设置”→“1”(或2、3、4,看选择使用哪个了),在d出的对话框里点中对应功能按钮后面的框,按键盘或真实手柄上的按钮就可以设置→在“默认手柄”(“设置”命令下面)钩选刚才设置的那个数字

一、如果表中要做为主键字段设置了主键,那么输入重复值会出错的,因为主键本来就是不允许重值出现的,并且事务会回滚,记录不会添加成功的,你只要捕捉错误值可以了.

Private Sub Command1_Click()

On Error GoTo Err_1_Click

......'你的代码过程

Err_1_Click:

if Err.Number=错误值 then '错误值,你运行一遍(就是错误一下)d出对话框时就可以看到了.

msgbox "你输入重复值"

exit sub

end if

end sub

二、主动检查有无重复值有两种方法,一种是用ADO,一种是用域聚合函数DLookup。

用ado方法:

dim rs as new adodb.recordset

dim sql as string

sql="select * from 表名 where 字段='" &trim(me.Text1) &"'"

rs.open sql, currentproject.connection, adopenkeyset, adlockpessimistic

if not rs.eof then

msgbox "你输入的数据重复"

set rs=nothing

exit sub

end if

用域聚合函数DLookup文法:

if not isnull(dlookup([字段1],表名,[字段1]='" &trim(me.textbox1) &"'")) then

'或if not isnull(dlookup([字段1],表名,[字段1]=" &trim(me.textbox1) &)) then '如是整数值则不用单引号

msgbox "你输入的数据重复"

exit sub

end if


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7900454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存