
VB6.0真正的ADO用得好的是ADO控件。介绍ADO类和ADO控件两种办法:
一 ADO类,在工程找到引用,在引用里找到Data Object 2.5以上版本,Command事件中写:
Dim cnn As ADODB.ConnectionDim 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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)