VB如何保存数据库?

PrivateSubcommand1_Click()OnErrorResumeNextDimcnnAsNewADODB.ConnectionDimrstAsNewADOD... Private Sub command1_Click()
On Error Resume Next
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim str As String

str = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "/123.mdb;Persist Security Info=False"
sql = "select * from xxx "
cnn.Open str
rst.Open sql, cnn, 3, 2

sql1 = "insert into xxx(bb)values ('" & Text1.Text & "')"
cnn.Execute (sql1)

cnn.Update
end sub

这段代码输入Text1可以保存数据到ACCESS数据库,但是我想要达到的效果是不一样的
表XXX中有aa和bb字段,原先已经有字段aa(张三)和bb(111)的数据
比如我在输入Text1输入111保存之后,在数据库的aa和bb字段里会保存张三和111,也就是说如果字段bb中有相同的数据,那么字段aa也会自动添加一样的数据,用一个文本框如何实现的呢?
这段代码该如何修改呢?高手帮帮忙,谢谢!
展开
 我来答
wegson
2011-04-06 · TA获得超过338个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:227万
展开全部
增加一判断,如果bb段有相同数据,你就读取aa段的数据并保存在一变量XXX中,在insert时同时写入XXX到aa段。
代码:
dim xxx$
rs.movefirst
do until rs.eof
if rs.fields("bb")=text1 then xxx=rs.fields("aa"):exit do
loop
if xxx="" then
sql1 = "insert into xxx(bb)values ('" & Text1.Text & "')"
else
sql1= "insert into xxx(aa,bb)values ('" & xxx & "'" ,"'" & Text1.Text & "')"
endif
......
更多追问追答
追问
代码有问题哦...
rs.movefirst 应该是rst.movefirst是吗?rs应该是rst?
在文本框Text1输入的内容,跟在xxx表中bb字段的第一条记录相同才能正常运行,要是输入的内容跟第一条记录不相同就会进入死循环;
如果我文本框Text1输入111,就可以实现效果,如果输入除了111外的内容,就会出现死循环了哦
这是什么原因?
追答
哦。rs就是adodb.recordset,也就是你设定的rst,就像:dim aaa 同dim asdfasdferasdfa,都一样定义一个变量,仅仅是名字不同。
之所以会出现死循环,是在循环体里少了一行。rst.movenext 我写掉了:),你自己也可以看看嘛。

不过你要达到你说目的没什么实际性用途啊,多行都是相同的,纯属垃圾数据库。
就像你要说这一句话一样:我要去玩。如果你说行:我我我我我我我....(省略N个我)要去玩。
那个要听你说话的人估计绝对要疯掉了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式