datagrid控件可以当作数据表格来使用,所以我用DATAGRID控件做了个可以录入单据的窗体,要求象其他软件一样在一行最末的时候 敲击ENTER 键可继续下一行的录入,窗体上还有3个TEXT 控件的值是要记录到数据库中的。以下是我的体会。
DATAGRID 控件必须绑定到数据源才可以编辑,且RS 打开方式为可更新。在一条记录的结尾点击上一行或下箭头会自动添加一行,本行数据会自动添加到数据库中。
   问题: 1:我需要添加的信息包括窗体上的 TEXT 控件值,如何一起添加进去呢
          2:添加的信息一般是要验证的,可是DATAGRID的绑定功能无法进行数据验证
          3:如何自动控制 DATAFRID 加一行,列可以用 .Columns.Add  方法添加,行呢?我做的就是采购或销售中单据的录入功能,请问大家在做这些模块中用什么样的控件或者如何用DATAGRID? 十分感谢,问题结束就结贴。

解决方案 »

  1.   

    主要的思路是:通过对数据源的操作,然后通过datagrid显示出来。
      

  2.   

    '保持数据一致性
    Private Sub DataGrid1_Click()
    DataGrid1.Refresh
    If Adodc1.Recordset.EOF Then
      If Adodc1.Recordset.RecordCount = 0 Then
        MsgBox "库中没有记录。" 
        Exit Sub
      End If
      Adodc1.Recordset.MoveFirst
    End If
    Text1.Text = Adodc1.Recordset(0)
    Text2.Text = Adodc1.Recordset(1)
    Text3.Text = Adodc1.Recordset(2)
    End Sub
    ...在“保存”命令按钮中设置:
      Adodc1.Recordset.AddNew
      Adodc1.Recordset(0) = Text1.Text
      Adodc1.Recordset(1) = Text2.Text
      Adodc1.Recordset(2) = Text3.Text
      Adodc1.Recordset.Update
    ...2、可在文本框输入时进行校验,不通过就提示,通过就存在数据源中:
    Private Function inputverify() As Boolean
    inputverify = True
    If Text1.Text = "" Then
      MsgBox "不能为空!"
      Text1.SetFocus
      inputverify = False
    End If
    ...在“保存”命令按钮中设置:
      If inputverify = False Then
        Exit Sub
      End If
    ...3、只要成功在数据源中添加记录了,同步更新datagrid显示出来就行了。
      

  3.   

    1:我需要添加的信息包括窗体上的 TEXT 控件值,如何一起添加进去呢
    //
     select * from ID,Name from jobs",conn,3,3
      rs.addnew
      rs("Name")=text1.text
      rs.update2:添加的信息一般是要验证的,可是DATAGRID的绑定功能无法进行数据验证
    //可以在
    Private Sub DataGrid1_BeforeUpdate(Cancel As Integer)End Sub
    等事件中间进行验证
    3:如何自动控制 DATAFRID 加一行,列可以用 .Columns.Add  方法添加,行呢?
    addnew一列全空数据就ok
    记得一个datagrid是对recordset的操作,它本身使用性很小,建议你使用其他的控件
      

  4.   

    多谢各位回复,尤其是 cindytsai(笨笨的蔡鸟) 和 daisy8675(莫依) 
    有关DATAGRID控件的问题还有很多,用到的比如如何内嵌控件等,搞的我头疼。
    其实我不喜欢DATAGRID的数据绑定功能,它非要绑定一个recordset才能编辑,查了资料才发现它是数据绑定控件,没了数据源它就干不了事了。
      

  5.   

    谢谢楼主的赞赏,datagraid的确需要数据绑定,所以星星大侠们都是建议用MSHFlexGrid控件的,你也可以看一下哦。
      

  6.   

    datagrid就是这个样子,还是用其它的控件好一点