请问:  1.在DataGrid上添加数据,在点击"保存"按钮后 才会写数据库,否则不保存任何数据,怎么实现? 听说这个叫内存表  2.怎样能让窗体装载时DataGrid(内存表)显示的行数都是固定的-----都显示30行空行,以便输入数据.  3.让DataGrid的TEXT实现模糊查询功能,例如:在DataGrid的一个格子里输入"电"字,此时这个格子下面就会出现类似List的列表框,这个列表框中将首字与"电"字匹配的数据全部列出来供用户选择.
    请高手帮忙解答   感激不尽!

解决方案 »

  1.   

    1 要么换 MSHFlexGrid 且不绑定,要么利用事务回滚和提交的来解决。如果按了“保存”按钮就提交,否则在窗体的 Unload 事件中回滚。2 那就用 MSHFlexGrid 好了。3 需要代码来实现。大致是这个样子(假定是 MSHFlexGrid) :Private Sub Text1_Change()    'Text1 是附加到 Grid 上的,用来输入数据
                                  '需要在 MSHFlexGrid 的 RowColChange 事件中调整:
                                  'With MSHFlexGrid1
                                  'Text1.Width = .CellWidth
                                  'Text1.Height = .CellHeight
                                  'Text1.Top = .CellTop
                                  'Text1.Left = .CellLeft
    Dim rs As ADODB.Recordset     '假定 Connection 对象已经打开
    Set rs = cn.Execute("SELECT " & strField(MSHFlexGrid.Col) & " FROM tablename WHERE " & _
              strField(MSHFlexGrid.Col) & " LIKE '%" & Trim(Text1) & "%'"
    List1.Clear
    Do Until rs.EOF
        List1.AddItem rs.Fields(0)
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    List1.Left = Text1.Left
    List1.Top = Text1.Top + Text1.Height
    List1.Visible = True
    End SubPrivate Sub List1_Click()
    Text1 = List1.List(List1.ListIndex)
    List1.Visible = False
    End Sub