执行后在“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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)