高分求解DataGrid+ADO Data Control使用问题!!!

Sniper 2003-04-01 03:59:49
用DataGrid+ADO Data Control操作数据库,有几问题总是搞不定,请高手指点:
1.程序运行时,DataGrid左上角的单元格总是被自动清空,并导致数据库对应数据被清空;
2.总是会出现输入不进去的情况,不是输入后自动被清空,就是填入了其它单元格的东东;
3.我的表里有ID,是自动编号字段,想显示出来,但不想被编辑或输入,但同时要求其它字段可以被编辑,如何解决。

最好有例程进行说明,分不够可以加,谢谢!!!!!
...全文
16 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihonggen0 2003-04-02
  • 打赏
  • 举报
回复

你可以通过右键datagrid,进行一些属性的设置


去下载一本书看看吧,关于datagrid使用的


可以访问

www.vbgood.com
www.dapha.net
www.21code.com
www.vbeden.com
www.myvc.net
msdn.microsoft.com

和MSDN得到更多的帮助.............
chenyu5188 2003-04-02
  • 打赏
  • 举报
回复
修改数据的代码:
Private Sub cmd_cdchange_Click()
With DataGrid1
.AllowAddNew = True'允许添加
.AllowDelete = True'允行删除
.AllowUpdate = True'允许更新
End With
End Sub

保存新数据代码:
Private Sub cmd_cdsavenew_Click()
ado_information.Recordset.Update
ado_information.Refresh
With DataGrid1
.AllowAddNew = False
.AllowDelete = False
.AllowRowSizing = True
.AllowUpdate = False
End With
End Sub

删除数据代码:
Private Sub cmd_seldel_go_Click()
Dim mybookmark As Variant
For Each mybookmark In form1.DataGrid1.SelBookmarks
form1.Adodc1.Recordset.Bookmark = mybookmark
form1.Adodc1.Recordset.Delete
form1.Adodc1.Refresh
Next


realwhs 2003-04-02
  • 打赏
  • 举报
回复
手工注册以下控件
regocx32 *.ocx
Sniper 2003-04-01
  • 打赏
  • 举报
回复
楼上多位仁兄都回答的是MSFlexGrid,可是我用的是MS Data Grid。我的MSFlexGrid控件因为没有设计时授权用不起来。请问哪位有License Key
jacklg 2003-04-01
  • 打赏
  • 举报
回复
OK~
heipifeng 2003-04-01
  • 打赏
  • 举报
回复
up 吧
minajo21 2003-04-01
  • 打赏
  • 举报
回复
up一个
Cooly 2003-04-01
  • 打赏
  • 举报
回复
你用ADODB访问数据库,通过Recordset对msflexgrid进行赋值,然后处理完毕后,在写回到数据库中。

关于你的第三个问题,你只要设定MSFlexGrid响应鼠标事件的列不包含ID列即可。
Cooly 2003-04-01
  • 打赏
  • 举报
回复
'===================================
'使用MSFlexGrid + TextBox 实现对表格数据的操作
'===================================
Public fRow, fCol As Long
Private Sub Form_Load()

Text1.BorderStyle = 0
MSFlexGrid1.Rows = 20
MSFlexGrid1.Cols = 4

For i = 0 To 19
For j = 0 To 3
MSFlexGrid1.TextMatrix(i, j) = "Grid(" & i & "," & j & ")"
Next
Next

fRow = 0: fCol = 0
Text1.Text = MSFlexGrid1.TextMatrix(0, 0)

End Sub
Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.TextMatrix(fRow, fCol) = Text1.Text
Text1.Text = ""
End Sub

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 1 Then

fRow = MSFlexGrid1.MouseRow
fCol = MSFlexGrid1.MouseCol

Text1.Left = MSFlexGrid1.ColPos(MSFlexGrid1.MouseCol) + MSFlexGrid1.Left
Text1.Top = MSFlexGrid1.RowPos(MSFlexGrid1.MouseRow) + MSFlexGrid1.Top
Text1.Height = MSFlexGrid1.CellHeight
Text1.Width = MSFlexGrid1.CellWidth
Text1.Text = MSFlexGrid1.TextMatrix(fRow, fCol)
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Text1.Visible = True
Text1.SetFocus

ElseIf Button = 2 Then
Text1.Visible = False
Text1.Text = ""
End If
End Sub
Cooly 2003-04-01
  • 打赏
  • 举报
回复
你是不是使用其它控件做模拟表格输入?

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧