注册 登录
编程论坛 VB6论坛

MSFlexGrid如何用textbox输入数据?如何用commanddialog导入Excel数据和保存数据在电脑上

lllloo 发布于 2017-04-15 13:43, 1349 次点击
MSFlexGrid如何用textbox输入数据?如何用commanddialog导入Excel数据和保存数据在电脑上?
求助各位大神老师们
而且一个页面上有三个MSFlexGrid,能不能一次导入数据,还是要一个一个导入?
3 回复
#2
ZHRXJR2017-04-15 20:00
MSFlexGrid控件直接用text控件导入数据不是不可以,但是导入的数据在程序关闭后就会丢失,一般不是这样做的。
一般是使用text控件就数据存储在数据库,然后从数据库读出数据到MSFlexGrid控件,现在电脑运行速度比较高,看起来好像是直接导入到MSFlexGrid控件了,实际是存储到数据库了。
至于你说的三个MSFlexGrid控件,确实也是从数据库读出数据的。
#3
lllloo2017-04-16 14:38
回复 2楼 ZHRXJR
能不能帮我看一下这下边的代码问题出在哪里 ,导入不了数据 说是Set exlapp = CreateObject("excel.application")这一句有问题  谢谢大神
Private Sub Command2_Click()
CommonDialog1.DialogTitle = "载入调出点数据"
CommonDialog1.Filter = "Excel 文件(*.xls)|*.xls"
CommonDialog1.CancelError = False
CommonDialog1.ShowOpen

With MSFlexGrid1

Dim rw, cl As Integer
Dim exlapp As Object
Set exlapp = CreateObject("excel.application")

On Error GoTo 100

If Dir(Parh + CommonDialog1.FileName) <> "" Then
exlapp.Workbooks.Open (CommonDialog1.FileName)

MSFlexGrid1.Rows = exlapp.Sheets(1).UsedRange.Rows.Count
MSFlexGrid1.Cols = exlapp.Sheets(1).UsedRange.Columns.Count

For rw = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(rw, 0) = rw - 1
MSFlexGrid1.RowHeight(rw) = 350
Next rw
MSFlexGrid1.RowHeight(0) = 350
MSFlexGrid1.ColAlignment(0) = 4
For cl = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(0, cl) = "调出点" & cl
MSFlexGrid1.ColWidth(cl) = 1300
MSFlexGrid1.ColAlignment(cl) = 4
Next cl
MSFlexGrid1.ColWidth(0) = 1300

For rw = 1 To MSFlexGrid1.Rows - 1
For cl = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(rw, cl) = exlapp.Sheets(1).Cells(rw + 1, cl + 1)
Next cl
Next rw
exlapp.Quit
Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(1) + 50
Text1.Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(1) + 50
Text1 = MSFlexGrid1.TextMatrix(1, 1)
Text1.SetFocus
Exit Sub

ElseIf Dir(Path + CommonDialog1.FileName) = "" Then
MsgBox "请确认文件是否存在!", 0 + 48, "文件错误"
Exit Sub
End If

100:
If Err.Number <> 32755 Then
MsgBox "数据载入已取消!", 48, "警告"
End If
End With
End Sub
#4
xiangyue05102017-04-17 08:59
如果是代码上的方法,楼主花点心思把上面的代码读懂其实就可以了。
这句就是从excel单元格读取数据到MSFlexGrid1的
MSFlexGrid1.TextMatrix(rw, cl) = exlapp.Sheets(1).Cells(rw + 1, cl + 1)

保存正好是反向的
exlapp.Sheets(1).Cells(rw + 1, cl + 1) = MSFlexGrid1.TextMatrix(rw, cl)
1