vb中查询数据库的记录带有'时就会出问题
1、我在vb中查询数据库里某条记录如果带有'时就出错,因为select语句里也有',运行时提示:语法错误(操作符丢失),topic='China'sGrowingPain...
1、我在vb中查询数据库里某条记录如果带有'时就出错,因为select语句里也有',运行时提示:语法错误(操作符丢失),topic='China's Growing Pains'。这个问题怎么解决?
2、我用datagrid给数据库里添加记录时,记录时自动添加进去的。但是我想让它先跟数据库里的记录比较判断重复,是重复的就不给数据库添加。我现在能判断重复,但是它还是先把数据给添加了。我想先判断,要是不重复再添加应该怎么实现?
3.怎样做可以在用datagrid录入时响应tab键和上下左右键?
注:我的第一个问题解决了,其他两个问题还存在,请高手指点!我判断重复的代码如下:
Private Sub DataGrid1_BeforeUpdate(Cancel As Integer)
On Error Resume Next
If res.State Then res.Close
res.Open "select * from animal where animal=' " & DataGrid1.Columns(0).CellText(DataGrid1.Bookmark) & "'", cnn, 1, 3
If Not res.EOF Then
On Error Resume Next
If Err Then
MsgBox "此单词已有,请录入其他单词.", 48, "提示"
End If
'DataGrid1.AllowUpdate = False
Exit Sub
End If
End Sub
这个能判断重复,但是还是先把重复记录添加进去了。我想先判断,如果是重复记录就不添加。 展开
2、我用datagrid给数据库里添加记录时,记录时自动添加进去的。但是我想让它先跟数据库里的记录比较判断重复,是重复的就不给数据库添加。我现在能判断重复,但是它还是先把数据给添加了。我想先判断,要是不重复再添加应该怎么实现?
3.怎样做可以在用datagrid录入时响应tab键和上下左右键?
注:我的第一个问题解决了,其他两个问题还存在,请高手指点!我判断重复的代码如下:
Private Sub DataGrid1_BeforeUpdate(Cancel As Integer)
On Error Resume Next
If res.State Then res.Close
res.Open "select * from animal where animal=' " & DataGrid1.Columns(0).CellText(DataGrid1.Bookmark) & "'", cnn, 1, 3
If Not res.EOF Then
On Error Resume Next
If Err Then
MsgBox "此单词已有,请录入其他单词.", 48, "提示"
End If
'DataGrid1.AllowUpdate = False
Exit Sub
End If
End Sub
这个能判断重复,但是还是先把重复记录添加进去了。我想先判断,如果是重复记录就不添加。 展开
2个回答
展开全部
晕死,你的代码放上啊,别人才好帮你
首先在一个过程里只需要一个on error 语句。
你是用datagrid绑定的吗?
如果是绑定的,只要你输入数据,就会保存记录的,不管有没有重复,也容易出错。
不要在datagrid里添加记录,在里面修改记录还马马虎虎,最好也不要,很容易误操作的。
应该用 res.addnew 命令添加记录,要添加的数据输入在textbox控件里,用赋值语句赋值到每一个字段里,用res.update保存记录。
If MsgBox("确实要增加吗?", vbYesNo) = vbYes Then '确认是否增加记录
If Text1 = "" Then '判断序号不能为空
MsgBox "序号不能为空!请重新输入." '显示对话框
Text1.SetFocus '使text1获得焦点
Exit Sub '退出,重新输入数据
Else
'判断序号是否已经存在
res.Open "select * from animal where animal=' " & text1 & "'", cnn, 1, 3
If Not res.EOF Then
MsgBox "此单词已有,请录入其他单词.", 48, "提示"
exit sub
End If
'增加记录
res.AddNew '在数据库里插入一条空记录
res.Fields("序号") = Text1 '赋值
res.Fields("姓名") = Text2
...........
res.Update '保存记录
End If
首先在一个过程里只需要一个on error 语句。
你是用datagrid绑定的吗?
如果是绑定的,只要你输入数据,就会保存记录的,不管有没有重复,也容易出错。
不要在datagrid里添加记录,在里面修改记录还马马虎虎,最好也不要,很容易误操作的。
应该用 res.addnew 命令添加记录,要添加的数据输入在textbox控件里,用赋值语句赋值到每一个字段里,用res.update保存记录。
If MsgBox("确实要增加吗?", vbYesNo) = vbYes Then '确认是否增加记录
If Text1 = "" Then '判断序号不能为空
MsgBox "序号不能为空!请重新输入." '显示对话框
Text1.SetFocus '使text1获得焦点
Exit Sub '退出,重新输入数据
Else
'判断序号是否已经存在
res.Open "select * from animal where animal=' " & text1 & "'", cnn, 1, 3
If Not res.EOF Then
MsgBox "此单词已有,请录入其他单词.", 48, "提示"
exit sub
End If
'增加记录
res.AddNew '在数据库里插入一条空记录
res.Fields("序号") = Text1 '赋值
res.Fields("姓名") = Text2
...........
res.Update '保存记录
End If
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询