同上
解决方案 »
- 利用VBA怎么将excel中的图片读出来?
- 在文本框中显示txt文档,当行数超过几千时特别慢,程序卡死,帮忙优化一下
- 如何遍历一个文件夹下面的所有文件,找出特定类型的文件,并获取文件名(在线~~,焦急)
- 在MSHFlexGrid中如何删除数据库中对应的记录
- mshflexgrid表格能否设置每一行的颜色不同?
- listbox:当把list1中的部分内容点到list2中时,如何使list2中的内容的顺序跟list1中相同
- 添加数据到数据库!!!
- 如何用DataGrid读取数据库的图象数据,并显示!
- Run-time error'381' Invalid property array index 通常是怎么引起的,如何解决?
- 怎么才能让我的控件运行时不可见!?
- 如何在工程间共享数据库连接
- 如何在自定义控件中使用对象作为属性?
--设置以下属性即可
vsflexgrid.FocusRect=1
vsflexgrid.HighLight=1
vsflexgrid.SelectionMode=3
--能,如果不是绑定的话必须用代码实现,如
cn.execute"insert into table1(col1,col2) select '" & vsflexgrid.TextMatrix(vfgdetail.Row,0) &"','" & vsflexgrid.TextMatrix(vfgdetail.Row,1) &"'"
For u = 2 To vg.Rows - 1
sql = "INSERT INTO xundandetails VALUES ('" & lbXundanId.Caption & "','" & vg.Cell(flexcpText, u, 0) & "' ," _
& vg.Cell(flexcpText, u, 1) & ",'" & IIf(Len(Trim(vg.Cell(flexcpText, u, 2))) = 0, Null, _
vg.Cell(flexcpText, u, 2)) & "'," & IIf(Len(Trim(vg.Cell(flexcpText, u, 3))) = 0, 0, _
vg.Cell(flexcpText, u, 3)) & ",null,null,'0')"
Cn.Execute sql '加入询单明细表数据
Next u
VSFlexGrid1.HighLight = 1
VSFlexGrid1.SelectionMode = 3
VSFlexGrid1.CellBackColor = vbRed
设置了行背景色后,就不能使行内光标所在的单元凸显出来,CellBackColor也不行,如我想把行设为蓝色,光标所在单元为红色或也为蓝色但宽度不是整个单元而是单元内文本宽,我见过Delphi就有。
***再就是网格录入的时候最后一行记得要加一句移开焦点的代码,否则你最后一行数据可能不被存入
vsflexgrid好像recordset.update不行,我用cn.execute update[2]insert我明白,但是
cn.execute"insert into table1(col1,col2) select '" & vsflexgrid.TextMatrix(vfgdetail.Row,0) &"','" & vsflexgrid.TextMatrix(vfgdetail.Row,1) &"'"不太明白,vfgdetail.Row更不明白,好像是追加数据到数据库里,然后再重新set vsflexgrid1.datasource=recordset ?[3]如果我想在记录2和3之间插入一条记录,是否实际是把新记录追加在了数据库末尾,显示时调用SQL语句重新查询,还是就能查进去,原来记录3和其后记录顺序后移?如果是用insert加什么条件?
vsflexgrid好像recordset.update不行,我用cn.execute update
难道不用cn.execute update可以调用什么实现自动保存,请指教。Private Sub VSFlexGrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long)
'移动行后保存更新的数据
Dim i As Integer
i = VSFlexGrid1.Row
Dim StrSql As String
With VSFlexGrid1
StrSql = "UPDATE 表 SET 字段1='" & VSFlexGrid1.TextMatrix(i, 2) & "',字段2='" & VSFlexGrid1.TextMatrix(i, 3) & "' where 字段3= " & VSFlexGrid1.TextMatrix(i, 1) & ""
cnn.Execute StrSql
rst.Requery
End With
End Sub
写错,是编辑后保存更新数据。缺点保存太频繁了(好像DataGrid就是编辑一个单元保存一个),我想是编辑一行(还在想用什么),保存一次,退出事件里保存一次最后一行。大概这样。
这个也好实现,原理和设置text控件的SelStart和 SelLength一样的,当前单元格得到焦点时发生就可以了
你的解释很明白!
还有两个上面提过的问题,一起告诉我吧:[1]datagrid一样在最末一行一回车出现一个新行,****cn.execute"insert into table1(col1,col2) select '" & vsflexgrid.TextMatrix(vfgdetail.Row,0) &"','" & vsflexgrid.TextMatrix(vfgdetail.Row,1) &"'"----小马哥给的这一句是把控件里的值添加到数据库里!?[2]如果我想在记录2和3之间插入一条记录,是否实际是把新记录追加在了数据库末尾,显示时调用SQL语句重新查询,还是就能插进去,原来记录3和其后记录顺序后移?如果是用insert加什么条件?
判断当前行是不是最后一行,是的话就把vg.rows + 1,再把焦点转到新行你想要的单元格;
如果不是最后一行,vg.rows保持不变,焦点移到下一行的你想要的单元格。