VB6.0 用ADO修改Access数据库中指定某行某列的单元内数据

VB6.0 用ADO修改Access数据库中指定某行某列的单元内数据,第1张

VB6.0真正的ADO用得好的是ADO控件。介绍ADO类和ADO控件两种办法:

一   ADO类,在工程找到引用,在引用里找到Data Object 2.5以上版本,Command事件中写:

Dim cnn As ADODB.Connection

Dim rs As ADODB.RecodeSet

Set cnn As New ADODB.Connection

Set rs As New ADODB.RecordSet

cnn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0Data Source="+ACCESS相对完整路径名    '//你那明明就是ACCESS2007的怎么会以mdb做后缀,这是2007以上版本字符串

cnn.Open

cnn.Excute "Update SSSSSS Set 八爪鱼='XXX' where 用户名='八爪鱼'"

但是这种方法移植性差,ADO类文件要跟着安装包走

二 ADO控件,在工程里找到部件,部件里加ADO Data Control 6.0,随便拖一个到窗体,Visible隐藏起来,按钮事件中加代码

Adodc1.ConnectionString=="Provider=Microsoft.ACE.OLEDB.12.0Data Source="+ACCESS相对完整路径名

Adodc1.RecordSource="Select * from SSSSSS where 用户名='八爪鱼'"

Adodc1.Refresh    

While Not Adodc1.RecordSet.EOF

   Adodc1.RecordSet.Fields("用户名")="八爪鱼"

   Adodc1.Update

Loop

恩,form3 里的 Call loumou(X_sql) 确实错了。没测试,望能原谅-)

adodb怎么说呢!! 它是vb的一个数据对象,而adodc是vb的一个控件。他们俩其实是一样的。只是adodb使用起来比较灵活。adodc使用起来比较方便。各有各的优点。

$在这里表示 字符型 变量 ,它相当于 as string ,另外还有 % 表示 as integer ,&表示 as long ,等等。。。这些都是常用的。

Public Sub loumou(ByVal sql$),这是一个自定义过程,用来给你的那些全局变量赋值的。loumou是我的百度名O(∩_∩)O~,你可以换成你的o(╯□╰)o(要记得都换哦,form1,2,3里面有的都换才行)。当然在是不提倡的,最好还是给它起个有意义的名字。()里面是参数,ByVal sql$ 相当于 ByVal sql as string,当你需要改变adodc1的recordset时,传一个sql 语句给它就行了。

call 在这里是调用的意思,没有什么特别的用法。它其实可以省略。

Call loumou(X_sql) 可以写成 loumou x_sql

还不明白的再联系。⊙﹏⊙b

===========================================================

研究了半天才发现你 form2 哪里用的是form1的变量,那是旧的数据,当然的不同步了

要改的话,我是这样改的,与你的代码基本一样,你应该看得懂吧。

我只是改了而已,没有测试,因为我没有你的数据库。你试试看吧。

'=================form1的代码这样写========================

Public p_sno$, p_sname$, p_syear$, p_classname$, p_address$, p_postcode$, p_mobile$, p_email$, p_qq$

Dim sno$, pass$

Private Sub Command1_Click()

sno = user.Text

pass = Password.Text

Dim sql As String

sql = "select * from student where sno='" &sno &"' and password='" &pass &"'"

Call loumou(sql)

If Adodc1.Recordset.RecordCount >0 Then

MsgBox "欢迎登陆," &Adodc1.Recordset(1).Value

Form2.Show

Unload Form1

Else

MsgBox "账号或密码错误", , "系统提示"

user.Text = ""

Password.Text = ""

End If

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then Call Command1_Click

End Sub

Public Sub loumou(ByVal sql$)

Adodc1.RecordSource = sql

Adodc1.Refresh

If Adodc1.Recordset.RecordCount >0 Then

p_sno = Adodc1.Recordset(0) &""

p_sname = Adodc1.Recordset(1) &""

p_syear = Adodc1.Recordset(2) &""

p_classname = Adodc1.Recordset(3) &""

p_address = Adodc1.Recordset(4) &""

p_postcode = Adodc1.Recordset(5) &""

p_mobile = Adodc1.Recordset(6) &""

p_email = Adodc1.Recordset(7) &""

p_qq = Adodc1.Recordset(8) &""

End If

End Sub

'=========== form2 的代码不变===========================

'=========== form3 的代码这样写===========================

Private Sub Command1_Click()

Dim X_sql As String

X_sql = "update student set address='" &address &"',postcode='" &postcode &"',mobile='" &mobile &"',email='" &email &"',qq='" &qq &"' where sno='" &Form1.p_sno &"'"

Dim con As New ADODB.Connection

con.ConnectionString = Adodc1.ConnectionString

con.Open

con.Execute X_sql'用adodb 执行 update 语句,因为我也搞不定adodc

con.Close

Set con = Nothing

X_sql = "select * from student where sno='" &Form1.p_sno &"'"

Call form1.loumou(X_sql)

Unload Form1

Unload Form3

Form2.Show

End Sub


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

原文地址:https://54852.com/sjk/10819238.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存