注册 登录
编程论坛 VB6论坛

[原创]关于公共模块的一个问题````请高手指点````

譕鈊ジ変懷 发布于 2005-05-20 16:20, 918 次点击

在项目资源管理器中添加一个Module,保存为Module.bas

添加函数ExecuteSQL,代码如下:

Public Function ExecuteSQL(ByValSQL_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,_adOpenKeyset,_adLockOptinistic

'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

ExecuteSQL函数 有两个参数:SQLMsgString.其中SQL中用来存放需要执行的SQL 语句,MsgString用来返回执行行的提示信息。

请高手帮我看看这段代码的错误在有哪些啊? 我现在就知道红字的那个 可是看不懂```` 请高手指点一下````

4 回复
#2
yms1232005-05-20 21:41
cnn.Open ConnectString 那你这个函数还得需要一个参数,那就是连接字符串,这个在那里传进来?
#3
譕鈊ジ変懷2005-05-21 03:23
谢谢上面的GG 这个是我在书上看的一个管理系统 我想试着做出来看看 可是怎么也做不对``` 书上是这么写的:

在项目资源管理器中添加一个Module,保存为Module.bas

添加函数ExecuteSQL,代码如下

Public Function ExecuteSQL(ByValSQL_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,_adOpenKeyset,_adLockOptinistic

'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

ExecuteSQL函数 有两个参数:SQLMsgString.其中SQL中用来存放需要执行的SQL 语句,MsgString用来返回执行行的提示信息。

ExecuteSQL函数中使用了Connect String函数,这个函数用来连接数据库,代码如下:

Public Function ConnectString()_

As String

ConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="

End Function

由于在以后的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:

Public Function Testtxt(txt As String)As Boolean

If Trim(txt)=""Then

Testtxt=False

Else

Testtxt=Ture

End If

End Function

如果文本框内容为空时,函数将返回True ,否者将返回False.

由于该系统启动后,需要对用户进行判断。如果是授权用户,将进入系统,否则将停止程序运行。这个判断需要在系统运行的最初进行,因此将代码放在公用模块中。代码如下:

Sub Main()

Dim fLogin As New frmlogin

fLogin.Show vbModal

If Not fLogin.OK Then

'Login Failed so exit app

End If

Unload fLogin

Set fMainForm=New frmMain

fMainForm.show

End Sub

过程Main将在系统启动时首先执行,这就保证对用户的管理。

系统需要知道登陆用户的信息,定义全局变量UserName:

Public UserName As String

不晓得里面还有多少错误在里面

GG能帮忙看看吗?~~~
#4
wellhide2012-03-25 20:19
Public Function ConnectString()_As string
后面必须返回一个双击的字符串(returns   a   DB   ConnectString

ConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="
这句中“pwd= ”



#5
wellhide2012-03-25 20:26
'Login Failed so exit app
后加一个end结束窗体

1