我已经实现了ACCESS的连接了。
但,更想实现用SQL语言来控制。用的是DATAGRID控件,想用SQL在DATAGRID里显示想显示的一切内容,
而不是死的数据表链接
   也就是说如何使用SQL语言,也有人问过个问题,但我想知道,是不是还需要什么声明,或函数
之类。

解决方案 »

  1.   

    ado.command 用来执行sql语句和存储过程
    ado.recordset数据集对象,用来保存sql语句返回的数据
    ado.connection 数据链接对象。用它与数据库相连。
    如何使用的例子挺多。你搜一下吧!
      

  2.   

    看样子你是刚用,建议你直接使用ADO控件进行邦定吧。
    1.在部件里调出ADO控件,右键点击属性然后连接你的数据库,在记录源里面的命令类型选“1”然后在框 里面填入你要查询的表:例如你是一张“A”表,select * from A ,点确定
    2.把你的DATAGRID的DATASOURCE属性设置成为:ADODC1就可以显示出你这张表里面的内容了。如果不用控件来进行邦定的话,你就要创建对象和记录集。
      

  3.   

    声明了这个:Dim cmd As ADODB.Command
    也NEW了一下,可是无法直接用SQL。
    我知道肯定还用一个表达式才行,但不知道,谢谢你的回答?
      

  4.   

    谢谢楼上的,我是直接邦定的,
    因为需要,现在要用SQL语言。
      

  5.   

    具体的请自己看这改:Dim cn As New ADODB.Connection,rs As New ADODB.Recordsetcn.CursorLocation=adUseClient
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;User Id=admin;Password=;"rs.Open "select * from 表 where 条件"Set DataGrid1.DataSource=rs '显示数据
      

  6.   

    Dim strCnn As String 
    Dim rs As New ADODB.Recordset
    Dim cnn As ADODB.Connection       strCnn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DATANAME;Data Source=USERNAME" Set cnn = New ADODB.Connection
    '打开连接
     cnn.Open strCnn
     rs1.Open "select * from A where ", cnn, adOpenKeyset, ckOptimistic再把记录集设到DATAGRID上去就行了
      

  7.   

    rs.Open "(select * from 123 where 姓名="micro")"
    可是,这样就会有错,为什么呢?
    我原已邦定了,会不会两者有冲突呢?
      

  8.   

    我很感谢楼上的回答!但我真的是个菜X,我深知我要学习,但我在在短时间做出来。希望能理解。
    库名:fnid.mdb 表名:123
    想让SQL的查询结果在DATAGRIDF里显示,以下是现有的,请问如何实现?Dim frecord As ADODB.Recordset
    Dim conn As ADODB.Connection
    Dim cmd As ADODB.Command
       Private Sub DataGrid2_Click()
           'conn.Open "select * from 123"
       End Sub
       Private Sub Form_Load()
         Combo1.AddItem "haha"
           Set frecord = New ADODB.Recordset
                  Set conn = New ADODB.Connection
         conn.CursorLocation = adUseClient
         oonn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\find.mdb;"
       End Sub
      

  9.   

    查询语句没写对,这样写:rs.Open "(select * from 123 where 姓名='micro')"
      

  10.   

    Dim frecord As New ADODB.Recordset
    Dim conn As New ADODB.ConnectionPrivate Sub Form_Load()
        Combo1.AddItem "haha"
        
        conn.CursorLocation = adUseClient
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\find.mdb;"
        frecord.Open "", conn, adOpenDynamic, adLockOptimistic
        Set DataGrid1.DataSource = frecord
    End Sub
      

  11.   

    上面没写对,打开记录集语句应该为:
    frecord.Open "select * from 123", conn, adOpenDynamic, adLockOptimistic
    查询表中所有记录的sql语句为:"select * from 123"
    查询表中姓名为 micro记录的sql语句为 ::"select * from 123 where 姓名='micro'"
      

  12.   

    当我进行整体查的时候可以实现:conn.open"select * from 123"
    但我作一条查的时候就不行,会出现“语法错误(操作符丢失。)在查询表达式‘年龄=21”中“
    我用的是:
    conn.Open "select * from 321 where 年龄='21'", conn, adOpenDynamic, adLockOptimistic   是SQL问题吗?怎么解决呢?
      

  13.   

    语法错误(操作符丢失。)
    -----------------------------
    这个是你的查询语句里的操作符没写对,就想上面你给的 = 号没写对,要在英文状态下输入另外,注意:如果你的年龄字段是数字类型,那么写查询语句的时候不要用单引号括起来:conn.Open "select * from 321 where 年龄='21'", conn, adOpenDynamic, adLockOptimistic
      

  14.   

    谢谢。嗯,我会注意这点,但这里的表达式还是用不好。
    还是会出现错误。
    frecord.Open "(select * from 321 where 年龄=21)", conn,adOpenDynamic,dLockOptimistic
    可还不行呀。
      

  15.   

    我说的数字类型,是指在设计数据库时列的数据类型,而不是SQL语句中的值的类型,如果你的数据库里,年龄字段的数据类型不是数字类型,在SQL语句里,还是需要用单引号把值括起来的另外,你上面给的语句的 = 号还是没写对frecord.Open "(select * from 321 where 年龄=21)", conn,adOpenDynamic,dLockOptimistic
    frecord.Open "(select * from 321 where 年龄=21)", conn,adOpenDynamic,dLockOptimistic