xd03021506 发表于 2006-12-27 21:26

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

<P>Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset<BR>Dim rst As ADODB.Recordset<BR>Dim stokens() As String<BR>'On Error GoTo exectuesql_error</P>
<P>stokens = Split(sql)<BR> Set rst = New ADODB.Recordset<BR>   Set ExecuteSQL = New ADODB.Recordset<BR>If InStr("INSERT,DELETE,UPDATE", UCase$(stokens(0))) Then<BR>      mycon.Execute sql<BR>      <BR>Else<BR> <BR>  rst.Open Trim$(sql), mycon, adOpenKeyset, adLockOptimistic<BR>Set ExecuteSQL = rst<BR>End If<BR>exectuesql_exit:<BR>  Set rst = Nothing<BR> Set mycon = Nothing<BR>  Exit Function<BR>exectuesql_error:<BR>  Resume exectuesql_exit<BR>End Function</P>
<P>为什么老是出现 rst.Open Trim$(sql), mycon, adOpenKeyset, adLockOptimistic错误啊<BR>我用的是ACCESS数据库,MYCON是是数据库链接用的相对路径<BR>加我QQ也行,78075493</P>

bygg 发表于 2006-12-28 21:43

怎么有个 $ 符号??

xd03021506 发表于 2006-12-28 22:37

<P>Private Sub Command1_Click()<BR>Set mycon = New ADODB.Connection<BR>mycon.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" &amp; App.Path &amp; "/db1.mdb"<BR>mycon.Open<BR>Dim mrc As ADODB.Recordset<BR>Set mrc = New ADODB.Recordset<BR>txtsql = "select * from [user] where name='" &amp; Trim(Text1.Text) &amp; "'and password='" &amp; Trim(Text2.Text) &amp; "'"<BR>Set mrc = ExecuteSQL(txtsql)<BR>If mrc.RecordCount &lt; 1 Then<BR>   Text1.Text = ""<BR>  Text2.Text = ""<BR>  Text1.SetFocus<BR>  MsgBox "请填入正确的用户名和密码", vbExclamation + vbOKOnly, "警告"<BR>  Exit Sub<BR>  Else: MsgBox "adfsfsdfsd"<BR>End If<BR>End Sub</P>
<P>有人已经帮我解决了,就是那个txtsql语句,原来我是用txtsql = "select * from user where name='" &amp; Trim(Text1.Text) &amp; "'and password='" &amp; Trim(Text2.Text) &amp; "'"所以出错,user加中括号就行,但是我不知道为什么要这样加,别人说是因为用的是ACCESS数据库就得加中括号,是这样得吗?<BR></P>

bygg 发表于 2006-12-29 22:22

因为 user 是保留字段,所以得加个 []

xd03021506 发表于 2007-1-2 18:57

保留字段,什么意思,能详细解释下吗,谢谢了

bygg 发表于 2007-1-2 23:56

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

页: [1]

编程论坛