因为刚刚学VB不久,第一次尝试做这样的东东,所以请各位高手赐教,万分感谢!!!!!!!!!!
帮我看一哈哈........
其中SUB MAIN以黄色显示,Flogin.ok中的.ok以蓝色显示
公用模块Module.
Public Function executeSQL(ByVal sql As String, msgstring As String) As ADODb.Recordset
Dim cnn As ADODb.Connection
Dim rst As ADODb.Recordset
Dim stokens() As String
On Error GoTo executesql_error
stokens = Split(sql)
Set cnn = New ADODb.Connection
cnn.Open connectstring
If InStr("insert,delete,update", UCase$(stokens(0))) Then
cnn.Execute sql
msgstring = stokens(0) & "query successful"
Else
Set rst = New ADODb.Recordset
rst.Open Trim$(sql), cnn, adopendeyset, adLockOptimistic
rst.MoveLast 'get RecordCount
Set executeSQL = rst
msgstring = "查询到" & rst.RecordCount & "条记录"
End If
executesql_exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
executesql_error:
msgstring = "查询错误:" & Err.Description
Resume executesql_exit
End Function
Public Function connectstring() As String
connectstring = "filedsn=student_info.dsn;uid=student_id;pwd="
End Function
Public Function testtxt(txt As String) As Boolean
If Trim(txt) = "" Then
testtxt = False
Else
testtst = True
End If
End Function
Sub Main()
Dim Flogin As New frmLogin
frmLogin.Show vbModal
If Not Flogin.ok Then
'login failed so exit app
End
End If
Unload frmLogin
Set fMainForm = New FrmMain
fMainForm.Show
End Sub
Public username As String
frmLogin窗体中的代码如下:
Option Explicit
Public OK As Boolean
Dim miCount As Integer
Private Sub Form_Load()
OK = False
miCount = 0
End Sub
Private Sub cmdCancel_Click()
OK = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
Dim txtSQL As String
Dim mrc As ADODb.Recordset
Dim MsgText As String
UserName = ""
If Trim(txtusername.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtusername.SetFocus
Else
txtSQL = "select from user_info where user_ID='" & txtusername.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtusername.SetFocus
Else
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
OK = True
mrc.Close
Me.Hide
UserName = Trim(txtusername.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
End If
End If
End If
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
Exit Sub
End Sub
18 个解决方案
#1
把sub main里的Dim Flogin As New frmLogin 去掉
再把If Not Flogin.ok Then改为If Not frmLogin.ok Then试试
再把If Not Flogin.ok Then改为If Not frmLogin.ok Then试试
#2
看就是使用vb的应用程序生成器作的
#3
引用了Microsoft ActiveX Data Objects 2.x Library沒有?
#4
首先多谢各位高手啦.......
不过问题的关键是:还没有解决
所有楼上各位仁兄说过的方法我都试过了,不行啊,运行不出来.......苦啊...
请教一下二楼的能否说的详细一点,感谢感谢!!!!!!!!!!!
求救求救..............................
不过问题的关键是:还没有解决
所有楼上各位仁兄说过的方法我都试过了,不行啊,运行不出来.......苦啊...
请教一下二楼的能否说的详细一点,感谢感谢!!!!!!!!!!!
求救求救..............................
#5
那个引用的是Microsoft ActiveX Data Objects 2.6 Library吧???
#6
调试的时候没有提示出什么错?
或者不要定义OK
把OK 换成BLOK
或者不要定义OK
把OK 换成BLOK
#7
试试Ctrl+F5: start with full compile找下基本的错误先。
你代码里头太多小错误了。
比如:
rst.Open Trim$(sql), cnn, adopendeyset, adLockOptimistic
应改为:
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
...
testtst = True
其中的testtst那里出来的,你是想写 testtxt 吧?
类似的小错误你自己就可以查,编译通过了再单步执行去找错吧。
你代码里头太多小错误了。
比如:
rst.Open Trim$(sql), cnn, adopendeyset, adLockOptimistic
应改为:
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
...
testtst = True
其中的testtst那里出来的,你是想写 testtxt 吧?
类似的小错误你自己就可以查,编译通过了再单步执行去找错吧。
#8
装一下mdac_typ2.7
#9
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!!
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!!
#10
ctrl + F查一下你的OK吧,多半是窗体没加载。网上下的代码看多了。
#11
你是怎么解决的啊,是什么问题啊
#12
问题很简单,新手常见错误
#13
2007-12-12 14:49:56 的贴还没结?
#14
#15
在“声明”中加上Option Explicit,强制变量先声明再使用
#16
#17
怎么做到的,请楼主明示!!!
#18
引用 9 楼 的回复:
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!
怎么做到的,请楼主明示!!!
------你想知道吗?要你反过来给楼主分了,哈哈
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!
怎么做到的,请楼主明示!!!
------你想知道吗?要你反过来给楼主分了,哈哈
#1
把sub main里的Dim Flogin As New frmLogin 去掉
再把If Not Flogin.ok Then改为If Not frmLogin.ok Then试试
再把If Not Flogin.ok Then改为If Not frmLogin.ok Then试试
#2
看就是使用vb的应用程序生成器作的
#3
引用了Microsoft ActiveX Data Objects 2.x Library沒有?
#4
首先多谢各位高手啦.......
不过问题的关键是:还没有解决
所有楼上各位仁兄说过的方法我都试过了,不行啊,运行不出来.......苦啊...
请教一下二楼的能否说的详细一点,感谢感谢!!!!!!!!!!!
求救求救..............................
不过问题的关键是:还没有解决
所有楼上各位仁兄说过的方法我都试过了,不行啊,运行不出来.......苦啊...
请教一下二楼的能否说的详细一点,感谢感谢!!!!!!!!!!!
求救求救..............................
#5
那个引用的是Microsoft ActiveX Data Objects 2.6 Library吧???
#6
调试的时候没有提示出什么错?
或者不要定义OK
把OK 换成BLOK
或者不要定义OK
把OK 换成BLOK
#7
试试Ctrl+F5: start with full compile找下基本的错误先。
你代码里头太多小错误了。
比如:
rst.Open Trim$(sql), cnn, adopendeyset, adLockOptimistic
应改为:
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
...
testtst = True
其中的testtst那里出来的,你是想写 testtxt 吧?
类似的小错误你自己就可以查,编译通过了再单步执行去找错吧。
你代码里头太多小错误了。
比如:
rst.Open Trim$(sql), cnn, adopendeyset, adLockOptimistic
应改为:
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
...
testtst = True
其中的testtst那里出来的,你是想写 testtxt 吧?
类似的小错误你自己就可以查,编译通过了再单步执行去找错吧。
#8
装一下mdac_typ2.7
#9
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!!
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!!
#10
ctrl + F查一下你的OK吧,多半是窗体没加载。网上下的代码看多了。
#11
你是怎么解决的啊,是什么问题啊
#12
问题很简单,新手常见错误
#13
2007-12-12 14:49:56 的贴还没结?
#14
#15
在“声明”中加上Option Explicit,强制变量先声明再使用
#16
#17
怎么做到的,请楼主明示!!!
#18
引用 9 楼 的回复:
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!
怎么做到的,请楼主明示!!!
------你想知道吗?要你反过来给楼主分了,哈哈
哈哈,经过大家的帮助和俺自个的努力,终于........终于搞定了
在此多谢了!!!!!!!!!!!!!!!!
真的好高兴啊!!!!!!!!!!
怎么做到的,请楼主明示!!!
------你想知道吗?要你反过来给楼主分了,哈哈