设置DataGrid控件绑定ADO,连接数据库时,设置DataGrid控件为AllowAddNew=ture 时,每添加一行后,需要单击当前行的上边的任意行,才能更新,添加成功,自动添加一新的空白行,否则单击其他地方添加不了数据,添加行仍为空,并不自动添加一空白行。请问如何解决?
也就是,添加数据后,如何让DataGrid控件自动执行而不需要鼠标单击而自动添加成功,生成一新空白行?例如用回车控制?
也就是,添加数据后,如何让DataGrid控件自动执行而不需要鼠标单击而自动添加成功,生成一新空白行?例如用回车控制?
Private Sub DataGrid1_OnAddNew()
KEYKK = KEYKK + 1
On Error GoTo AddErr
With adoPrimaryRS
If Not (.BOF And .EOF) Then
mvBookMark = .Book
End If
.AddNew
lblStatus.Caption = "添加记录"
mbAddNewFlag = True
DataGrid1.Columns(0) = " "
DataGrid1.Col = 0
DataGrid1.SetFocus
adoPrimaryRS!ID = KEYKK
End With
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
If KeyAscii = vbKeyReturn Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveLast
End If
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
End Sub
这样有的太不方便了,是否可以实现 按‘回车’键,或鼠标单击窗体或其他控件的任意位置,就能实现存储数据,更新DataGrid控件,生成新空白行呢?
adoPrimaryRS.Open "SHAPE {select 标志,章号,序号,项目名称,单位,工程量,砼,分析,基价,合计,人工单价,人工合计,机械单价,机械合计,地区单价,地区合计,换算,章序号,工程名称,文件号,编制单位,年度标志,ID from demo ORDER BY 材机库ID} AS ParentCMD APPEND ({select 代号,材机名称,单位,材机单价,材机数量,材机库ID from 材机库 ORDER BY 代号} AS ChildCMD RELATE ID TO ID) AS ChildCMD", db, adOpenStatic, adLockOptimistic
你如果用数据库自动形成被称为窗体,以上就全明白了。
[email protected]