dbgrid控件的使用?答对高分(100)奉给!

hjb111 2003-03-22 05:21:22
请问如何将Datagrid控件中的每一个单元格显示多个数据,也就是说每个单元格中显示一个按钮,点这个按钮则从一个数据表中显示所要的一列数据!
...全文
31 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐NeMo 2003-04-09
  • 打赏
  • 举报
回复
太多代码了!
Check1.Visible = False
Text5.Visible = False
Combo2.Visible = True
Combo4.Visible = False
Combo5.Visible = False
这几个控件有什么用呢?
为什么在设置combo2的width top left 等。
If IsNull(Rs_Jc_Shhy_Sp.Fields("ID")) Or Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount Then
DataGrid1.Enabled = False
Rs_Jc_Shhy_Sp.AddNew
Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount
Rs_Jc_Shhy_Sp.Fields("HTH") = Text1(0).Text
Rs_Jc_Shhy_Sp.MovePrevious
DataGrid1.Enabled = True
End If
当IsNull(Rs_Jc_Shhy_Sp.Fields("ID")) 为空成立时,为什么记录集就要追加记录。
Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount 这是什么意思呀?
lihonggen0 2003-03-24
  • 打赏
  • 举报
回复
就是在DATAGRID上附加一个COMBO,使他大小、宽度等于单元格大小、宽度,而且可以移动
lihonggen0 2003-03-24
  • 打赏
  • 举报
回复
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Dim hh As Integer
Dim Xh As Integer
Dim Cpm As String
Dim cSpdj1 As Double
hh = 12

If DataGrid1.Enabled = True Then
If DataGrid1.Columns(0).Text = "品牌" And DataGrid1.Columns(0).Text = "工艺" And DataGrid1.Columns(0).Text = "规格" And DataGrid1.Columns(0).Text = "TOTAL:" Then
DataGrid1.Columns(9).Locked = True
Else
DataGrid1.Columns(9).Locked = False
End If
Select Case DataGrid1.Col
Case 0
Check1.Visible = False
Text5.Visible = False
Combo2.Visible = True
Combo4.Visible = False
Combo5.Visible = False
Combo2.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
Combo2.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Combo2.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight + hh) + (DataGrid1.HeadLines - 1) * 195
Combo2.SetFocus
If DataGrid1.Columns(0).Text <> "" Then
Combo2.Text = DataGrid1.Columns(0).Text
End If
Case 1
Check1.Visible = False
Combo2.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Text5.Visible = False
Select Case DataGrid1.Columns(0).Text
Case "品名"
Check1.Visible = False
Text5.Visible = True
Combo2.Visible = False
Combo4.Visible = False

Text5.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
Text5.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Text5.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight + hh) + (DataGrid1.HeadLines - 1) * 195
Text5.SetFocus
If DataGrid1.Columns(0).Text <> "" Then
Text5.Text = DataGrid1.Columns(1).Text
End If
End Select
Case 2
Check1.Visible = False
Combo2.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Text5.Visible = False
Select Case DataGrid1.Columns(0).Text
Case "规格"
If DataGrid1.Columns(2).Text <> "" Then
Text5.Text = DataGrid1.Columns(2).Text
Else
If Text5.Text <> "" Then
DataGrid1.Columns(2).Text = Text5.Text
End If
End If
End Select
If IsNull(Rs_Jc_Shhy_Sp.Fields("ID")) Or Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount Then
DataGrid1.Enabled = False
Rs_Jc_Shhy_Sp.AddNew
Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount
Rs_Jc_Shhy_Sp.Fields("HTH") = Text1(0).Text
Rs_Jc_Shhy_Sp.MovePrevious
DataGrid1.Enabled = True
End If
Case 6
Select Case DataGrid1.Columns(0).Text
Case "品名"
Combo5.Visible = True
Combo5.Width = DataGrid1.Columns(DataGrid1.Col).Width + 30
Combo5.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Combo5.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight + hh) + (DataGrid1.HeadLines - 1) * 195
Combo5.SetFocus
Case Else
Combo5.Visible = False
End Select
Case 8
Check1.Visible = False
Text5.Visible = False
Combo2.Visible = False
Combo5.Visible = False
Select Case DataGrid1.Columns(0).Text
Case "价格条款"
Combo4.Visible = True
Combo4.Width = DataGrid1.Columns(DataGrid1.Col).Width + 30
Combo4.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Combo4.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight + hh) + (DataGrid1.HeadLines - 1) * 195
Combo4.SetFocus
If DataGrid1.Columns(8).Text <> "" Then
Combo4.Text = DataGrid1.Columns(8).Text
End If
Case Else
Combo4.Visible = False
End Select
Case 9
Check1.Visible = False
Text5.Visible = False
Combo2.Visible = False
Combo5.Visible = False
Select Case DataGrid1.Columns(0).Text
Case "品牌", "工艺", "规格", "TOTAL: "
Check1.Visible = False
Case Else
Check1.Visible = True
Check1.Width = DataGrid1.Columns(DataGrid1.Col).Width + 30
Check1.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Check1.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight + hh) + (DataGrid1.HeadLines - 1) * 195
Check1.SetFocus
If DataGrid1.Columns(9).Text <> "" Then
Check1.Value = 1
Else
Check1.Value = 0
End If
End Select
If IsNull(Rs_Jc_Shhy_Sp.Fields("ID")) Or Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount Then
DataGrid1.Enabled = False
Rs_Jc_Shhy_Sp.AddNew
Rs_Jc_Shhy_Sp.Fields("ID") = Rs_Jc_Shhy_Sp.RecordCount
Rs_Jc_Shhy_Sp.Fields("HTH") = Text1(0).Text
Rs_Jc_Shhy_Sp.MovePrevious
DataGrid1.Enabled = True
End If
Case Else
Check1.Visible = False
Text5.Visible = False
Combo2.Visible = False
Combo4.Visible = False
Combo5.Visible = False
End Select
realmayer 2003-03-24
  • 打赏
  • 举报
回复
用combobox=false
当双击单元格时,再combobox=true
把位置移动到当前位置,这样至少在视觉上可以达到这样的效果
donglw 2003-03-22
  • 打赏
  • 举报
回复
可以用个datacombo重叠,当然最好还是用别的GRID控件,象VS什么的

1,453

社区成员

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

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