注册 登录
编程论坛 ACCESS论坛

[求助]急啊,求求高人告诉我

xd03021506 发布于 2006-12-27 21:26, 1099 次点击

Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset
Dim rst As ADODB.Recordset
Dim stokens() As String
'On Error GoTo exectuesql_error

stokens = Split(sql)
Set rst = New ADODB.Recordset
Set ExecuteSQL = New ADODB.Recordset
If InStr("INSERT,DELETE,UPDATE", UCase$(stokens(0))) Then
mycon.Execute sql

Else

rst.Open Trim$(sql), mycon, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
End If
exectuesql_exit:
Set rst = Nothing
Set mycon = Nothing
Exit Function
exectuesql_error:
Resume exectuesql_exit
End Function

为什么老是出现 rst.Open Trim$(sql), mycon, adOpenKeyset, adLockOptimistic错误啊
我用的是ACCESS数据库,MYCON是是数据库链接用的相对路径
加我QQ也行,78075493

5 回复
#2
bygg2006-12-28 21:43
怎么有个 $ 符号??
#3
xd030215062006-12-28 22:37

Private Sub Command1_Click()
Set mycon = New ADODB.Connection
mycon.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "/db1.mdb"
mycon.Open
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
txtsql = "select * from [user] where name='" & Trim(Text1.Text) & "'and password='" & Trim(Text2.Text) & "'"
Set mrc = ExecuteSQL(txtsql)
If mrc.RecordCount < 1 Then
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
MsgBox "请填入正确的用户名和密码", vbExclamation + vbOKOnly, "警告"
Exit Sub
Else: MsgBox "adfsfsdfsd"
End If
End Sub

有人已经帮我解决了,就是那个txtsql语句,原来我是用txtsql = "select * from user where name='" & Trim(Text1.Text) & "'and password='" & Trim(Text2.Text) & "'"所以出错,user加中括号就行,但是我不知道为什么要这样加,别人说是因为用的是ACCESS数据库就得加中括号,是这样得吗?

#4
bygg2006-12-29 22:22
因为 user 是保留字段,所以得加个 []
#5
xd030215062007-01-02 18:57
保留字段,什么意思,能详细解释下吗,谢谢了
#6
bygg2007-01-02 23:56

简单地说,在查询分析器中打出来会变色有就是.呵

1