ADODC控件的简单操作

bitzl210 2005-02-21 01:20:41
access数据库中有一个表zl,有两列,No,Name

NO 存放文本框的index值,Name存放文本框的内容
在文本框中输入一个非空字符,按下enter键,如果数据库中已经存在这个index值,则修改这条记录的name为文本框中的值

如果不存在,就新加一条记录

如果文本框中的值为XXX,则从数据库中删除这条记录

如何实现?
谢谢
...全文
160 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_cer 2005-02-23
  • 打赏
  • 举报
回复
你的程序作以下修改即可

Dim strSql As String
strSql = "select * from [zl] where [no] =" & zlaa
Debug.Print strSql
MyRs.Open strSql, MyCon, 1, 3 ' & zlaa & "'"
------------------------------------------------------------
原来是
myRs.open 。。。 这一句。




bitzl210 2005-02-23
  • 打赏
  • 举报
回复
问题解决了
bitzl210 2005-02-22
  • 打赏
  • 举报
回复
想达到的目的就是,如果数据库中已经有no的记录了,就修改,没有就新增
bitzl210 2005-02-22
  • 打赏
  • 举报
回复
MyRs.Open "select * from zl " & _
"where no='" & zlaa & "'", MyCon, 1, 3 ' & zlaa & "'"

If Not MyRs.EOF And Not MyRs.BOF Then
MyRs.Fields("name") = wmy
MyRs.Update

Else
MyRs.AddNew
MyRs.Fields("no") = zlaa
MyRs.Fields("name") = wmy
MyRs.Update

End If
MyRs.Close
这段程序一执行就出问题,是哪的问题?
yorkness 2005-02-21
  • 打赏
  • 举报
回复
Dim mycom As New ADODB.Command
Dim f As ADODB.Field
MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=" & App.Path & _
"\BaoBao.mdb;Persist Security Info=False"
MyCon.Open

strsql = "select * from bbao"
Set mycom.ActiveConnection = MyCon
mycom.CommandText = strsql
Set MyRs = mycom.Execute
if myrs.recordcount>0 then
MyRs.MoveFirst
Show
Do While Not MyRs.EOF
lblWan(MyRs.Fields("num")).Caption = MyRs.Fields("name")

MyRs.MoveNext
Loop
else
‘看需要作啥操作
end if
badboy168 2005-02-21
  • 打赏
  • 举报
回复
已解
bitzl210 2005-02-21
  • 打赏
  • 举报
回复
Dim mycom As New ADODB.Command
Dim f As ADODB.Field
MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=" & App.Path & _
"\BaoBao.mdb;Persist Security Info=False"
MyCon.Open

strsql = "select * from bbao"
Set mycom.ActiveConnection = MyCon
mycom.CommandText = strsql
Set MyRs = mycom.Execute
MyRs.MoveFirst
Show
Do While Not MyRs.EOF
lblWan(MyRs.Fields("num")).Caption = MyRs.Fields("name")

MyRs.MoveNext
Loop
这样做的话,我的数据库里必须存有一条记录才可以启动程序,不然报错.说.bof和.eof只能一个为真.
应该怎么做,如果是空的也可以启动?
ljhdi 2005-02-21
  • 打赏
  • 举报
回复
先判断是否存在
connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "你的数据库.mdb"
adodc1.connectstring=connectstring
sql = select * from zl where no = '" + text1.text + "'"
adodc1.RecordSource= sql
'判断是否存在
if not adodc1.recordset.eof and not adodc1.recordset.bof then
adodc1.recordset.fileds("name")=text1.text
else
adodc1.recordset.addnew
……
adodc1.recordset.updata
end if
bitzl210 2005-02-21
  • 打赏
  • 举报
回复
我就是看了资料也没做出来,才上来问的
myhgyp 2005-02-21
  • 打赏
  • 举报
回复
这样问范围太大了,建议先看一下相关资料,如判断记录是否已经存在、更新记录的方式
bitzl210 2005-02-21
  • 打赏
  • 举报
回复
不是我设想的,是这么要求的

我的界面上有label控件数组,其caption初始值是XXX,若修改,则按ctrl键加单击,出现文本框,填内容,然后回车,把label的index值和text中的值存进数据库。这个值是可以随意改的。

如果再把label的caption值设为XXX,则不用存进数据库

因为不是所有的label的caption值都需要改变。
也就是说,只要label的caption值变的不是XXX了,就要存到数据库里
程序启动时,就要把这些值读出来显示在界面上
cindytsai 2005-02-21
  • 打赏
  • 举报
回复
楼主设想的功能随意性大,这样操作很不安全呀

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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