新手开发进销存(私人收单)数据库访问不了
本人对ASP很懂,对VB就不太懂了,也没有开发过什么项目,前几天接了单,问问几个问题?
数据库是SQL
我想把连接数据库 Dim Conn As New ADODB.Connection 作为全局变量,在每个form 里新建RS 对数据库进行访问
但在form 里执行ExecuteSQL发生错误 错误号:3001 错误信息:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
------Module1.bas-------
Sub Main()
Dim strConn As String
Dim Conn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
On Error GoTo On_error:
strConn = "Provider=SQLOLEDB;Data Source=janly;User ID=sa;Password=sa;Initial Catalog=JuHongERP;Persist Security Info=True "
Conn.CommandTimeout = 5
Conn.Open strConn
On_error:
If Err.Number = -2147467259 Or Err.Number = -2147217900 Then
MsgBox "服务器无响应,请确认服务器是正常工作的! ", vbInformation + vbOKOnly, "系统错误提示 "
End
End If
'启动登陆对话框
Dim fLogin As New Login
fLogin.Show vbModal
If Not fLogin.isLogining Then
End
End If
Unload fLogin
Set fMainForm = New MainForm
fMainForm.Show
End Sub
Public Function ExecuteSQL(ByVal SQL As String) As ADODB.Recordset
On Error GoTo ErrHandler:
Dim rs As New ADODB.Recordset
rs.Open Trim$(SQL), Conn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rs
ErrHandler:
'显示错误信息
MsgBox "发生错误 错误号: " & Err.Number & " 错误信息: " & Err.Description, vbExclamation
Call RsClose
End Function
Public Sub RsClose()
On Error Resume Next
If rs.State <> adStateClosed Then rs.Close
Set rs = Nothing
End Sub
-----------------------
--------form-----------
Private Sub Form_Load()
Dim rs As ADODB.Recordset
Set rs = ExecuteSQL( "SELECT * FROM productsort ") '就是这里返回有问题??
End Sub
-----------------------
ExecuteSQL是不是写得不够好,要怎么写,我的CONN作为全局行不行的?
[解决办法]
Dim Conn As New ADODB.Connection
这个写个一个公共模块里声明成
public Conn as New adodb.connection
[解决办法]
CONN 在子模块中声明的 只有子模块可以调用了
[解决办法]
一般Conn 都是public的