Option Explicit
Private Conn As New ADODB.Connection
Private Rs As New ADODB.Recordset
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~以上是声明
Private Sub cmdConnect_Click()
Dim strConn As String
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path   & "\sale&stock.mdb;Persist Security Info=False"
    Conn.CursorLocation = adUseClient
    'CursorLocation adUseClient
    Conn.Open strConn
    
    If Rs.State <> adStateClosed Then Rs.Close
    Rs.Open "Select *from order", Conn, adOpenStatic, adLockOptimistic
    
    Set Me.DataGrid1.DataSource = Rs
    
    With Me.DataGrid1
      .Columns(0).Width = 0
    End With
    cmdConnect.Enabled = False
end sub
以上是了连接ACCESS数据库表order
有2问题如下:
1.为什么我的数据库表中有4列,显示只有3列(第一列没有显示),如何才能显示全部列?而且列名不能改(表用ENGLISH)想在DATA.GRID1把列该成中文____属性中改了出错)
2.上面运行报错:FORM子句语法错误,晕 大虾帮看看
注:按莫依给我的参考写的代码

解决方案 »

  1.   

    1.你已经用Columns(0).Width = 0将列宽设为0了,当然看不到咯,其实已经有了.如果你想显示出来,就去掉这句.2.order这是关键字,最好不用做表名.如果一定要做表名就这样用:Rs.Open "Select * from [order]", Conn, adOpenStatic, adLockOptimistic
      

  2.   

    .Columns(0).Width = 0
    这种方法屏蔽一列好像也挺不错
      

  3.   

    哦 强啊tztz520 我刚想自己占一楼呢!
    第一个问题的后半部分怎么弄呢? 你明白我的意思了吧
      

  4.   

    我用的是英文版,是这样设置的
    在datagrid上右键选择edit,然后在行上右键append或insert添加新的列
    在datagrid上右键选择properties..->columns里面进行设置
    capture是列名,Datafield里面是你对应的字段名
    下拉框里可以选择定义不同的列
      

  5.   

    改列名可以在SQL语句中直接改:Rs.Open "Select 字段1 as 列名1,字段2 as 列名2,字段3 as 列名3,字段4 as 列名4 from [order]", Conn, adOpenStatic, adLockOptimistic
      

  6.   

    既然都来了,再问个问题吧,以后分多了再给吧!
    Q:链接后,输入数据了 把窗体关了,然后再打开frmorder(指上面窗体,没用MDI窗体做frmmain),然后再链接就出错了:operation is not allowed when object is open,我该怎么改才能关了后链接不出错!
      

  7.   

    我的工程管理窗口如下: frmmain~~~~放菜单用(非MDI窗体)
                          frmorder~~~定单
                          frmguest~~~客户 -----上面2个窗体上各画 dataGRID  对应一个表,各画一个                               connect按钮用来链接表显示与datagrid中
    我如下操作,启动运行在frmmain,点菜单进 frmorder或frmguest,connect后关掉 再从frmain的菜单进入frmorder/frmguest链接就出现以上错误了!!!
      

  8.   

    将Private Rs As New ADODB.Recordset定义到你按钮事件中.作局部变量
      

  9.   

    还有
    最好将Private Conn As New ADODB.Connection用public定义到模块中用作全快速变量,程序启动时就打开.
      

  10.   

    我把以上一段代码全部放到模块,在我启动时候就打开,那就是说进入frmguest时候我不用再连接了?
    那有好几个窗体,怎么处理?问:以下各列代码什么意思?
    Conn.CursorLocation = adUseClient
        'CursorLocation adUseClient
        Conn.Open strConn
        
        If Rs.State <> adStateClosed Then Rs.Close  '全解释这段
        Rs.Open "Select *from order", Conn, adOpenStatic, adLockOptimistic
      

  11.   

    就是判断RS有没有打开.\\我把以上一段代码全部放到模块,在我启动时候就打开,那就是说进入frmguest时候我不用再连接了?\\
    是的.