从数据库里面查出数据,datagrid绑定了数据。我在程序里面点击修改
1,请问当我在datagrid里面按下向下键或者回车键时光标自动向下一行,如果是最后一行就自动生成一空白行
2,当我向空白行输入内容,然后按保存键,请问是怎么样把刚刚输入的内容写进数据库里面呢?是不是用Recordset.Update然后Adodc1.Refresh ?
1,请问当我在datagrid里面按下向下键或者回车键时光标自动向下一行,如果是最后一行就自动生成一空白行
2,当我向空白行输入内容,然后按保存键,请问是怎么样把刚刚输入的内容写进数据库里面呢?是不是用Recordset.Update然后Adodc1.Refresh ?
不用再取调用什么Recordset.Update然后Adodc1.Refresh。
你可以直接在里面写了数据后再去数据库里查看。
2、当控件与Recordset绑定时用只读方式打开表;
3、每次手工UPDATE或者INSERT之前添加数据范围、类型、逻辑判断的代码。
不过需要对好多DataGrid的事件编程以控制它的行为,
而且利用DataGrid更新数据容易出现误操作。
'例子代码,不要直接拷贝
Private Sub CmdAddData_Click()
'检查数据格式
Dim strID AS String
Dim strName AS String strID = Trim(txtID.Text)
strName = Trim(txtName.Text) If strID = "" OR strName = "" Then
Call Msgbox("[错误提示]")
Exit Sub
End If '打开数据连接
Dim cnn AS ADODB.Connection
SET cnn = New ADODB.Connection
cnn.Open "[ConnectionString]" cnn.Execute "UPDATE [TableName] SET [Name] = '" & strName & "' WHERE [ID] = " & strID cnn.Close
Set cnn = NothingEnd Sub
Adodc1.Recordset.Fields(1) = "df"
……Adodc1.Recordset.UpdateAdodc1.Refresh
Dim a As Integer, b As Integer
Private Sub DataGrid1_Click()
With DataGrid1
Text2.Visible = True
If .Col < 0 Then Exit Sub
a = .Row: b = .Col
Text2.Move .Columns(.Col).Left + .Left, .RowTop(.Row) + .Top, .Columns(.Col).Width, .RowHeight
Text2.BackColor = &HC0FFC0
Text2 = ""
Debug.Print .Columns(.Col).CellText(.RowBook(.Row))
If .Columns(.Col).CellText(.RowBook(.Row)) = "" Then
Text2.Text = ""
Else
Text2.Text = .Columns(.Col).CellText(.RowBook(.Row))
End If
Text2.SelLength = Len(Text2.Text)
Text2.SetFocus
End With
End SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13 Then Exit Sub
With DataGrid1
.SelText = Text2.Text
.Columns(b).CellText(.RowBook(a)) = Text2.Text
End With
Text2.Visible = False
End Sub自己改改吧,我也没现成的。只是个思路