请问怎样能把MSHFlexGrid控件的内容输出到EXCEL里??还有,要连接局域网里SQL SERVER里的数据库,ADO的连接怎样些?
例如服务器的机器名字叫 DB-SERVER,IP地址为192.168.0.1,其他机器要连接上去ADO连接应该怎样写??谢谢各位大哥啦!!!!!!!!!!!!!!!!!
例如服务器的机器名字叫 DB-SERVER,IP地址为192.168.0.1,其他机器要连接上去ADO连接应该怎样写??谢谢各位大哥啦!!!!!!!!!!!!!!!!!
解决方案 »
- 关于字符串数组
- VB 对象不支持该属性或方法
- VB GUI 如何适应窗口大小变化?
- 请问谁会用Tabstrip控件呀,教教我吧~~~
- 如何使文本框只能输入特定长度的字符(是不是有现成的控件?)?
- 问一个call语句的调用数组的问题
- 如何把数据库中的数据导出到文件中,即备件数据库中的数据
- 是不是高手都放假了,一个小问题无人问津.......
- 关于Active Report报表连续走纸问题
- 在我的vb6.0中为什么不能用loadpicture()函数
- 在使用VB6的报表打印工资条时(就是那种两边有孔的那种)。在打印设置里:设为--横着打与纵着打,打印结果都是纵着打的。是出了什么问
- 大家快来看看,我好像了发现的VB语言的BUG。
On Error GoTo Err
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlWorkBook = xlApp.Workbooks.Add(App.Path & "\template\big.xls"))xlApp.Application.Visible = True
Set xlSheet = xlWorkBook.Sheets(1)
xlSheet.Cells(1, 1) = cmbDEP.Text & Format(DTP1.Value, "dddddd") & "至" & Format(DTP2.Value, "dddddd") & "出境大表"
Dim flexCols, flexRows As Integer
Dim flexCol, flexRow As Integer
Dim i, j As Integer
With flex
flexCols = .cols - 1
flexRows = .rows - 1
i = 3
j = 1
For flexRow = 1 To flexRows
For flexCol = 1 To flexCols
xlSheet.Cells(i, j) = .TextMatrix(flexRow, flexCol)
j = j + 1
Next flexCol
i = i + 1
Next flexRow
End With
Set xlApp = Nothing
Set xlWorkBook = Nothing
Set xlSheet = Nothing
Exit Sub
Err:
MsgBox Err.Description, vbCritical, "错误"
End Sub
gS_DBPath = "Provider=SQLOLEDB.1;Persist Security Info=True;" _
& "User ID=" & 数据库登录用户名(例如:sa) & ";Password=" & 数据库登录用户的口令 & ";" _
& "Initial Catalog=" & 数据库名称 & ";Data Source=" & IP地址或机器名 & ";" _
& "NetWork Library=DBMSSOCN " 注:网络连接库可以不选,但程序在98下运行可能会出错
'判断数据连接是否已经建立
If gO_DBConn Is Nothing Then
Set gO_DBConn = New ADODB.Connection
ElseIf gO_DBConn.State = adStateOpen Then
gO_DBConn.Close
End If
'进行数据库连接
gO_DBConn.CursorLocation = adUseClient
gO_DBConn.Open gS_DBPath
请受白痴仔一拜!KenWin大哥
怎样才可以做成函数,将MSHFlexGrid或Object作为参数进行传递???
能否再教教小弟?
SQL Server 连接串如下:Dim Conn As ADODB.Connection
Dim ConnStr As String
Dim ServerAddress As String
Dim DBName As String
Dim UserId As String
Dim Password As String
ServerAddress="127.0.0.1" '这里改成你的 192.168.0.1
DBName="Medicine"
UserId="sa"
Password=""
ConnStr="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER=" & serveraddress & ";DATABASE=" & dbname & ";UID=" & userid & ";PWD=" & 写Excel函数如下:
当然,首先肯定要引用 Excel 的库,Public Sub Write2XL(CaptionList As ListBox, SQLList As ListBox, MSFG As MSHFlexGrid, Optional FieldCount As Integer = 5, Optional ReportCaption As String = "仓库报表")
If CaptionList.ListCount <> SQLList.ListCount Then
ErrProc "报表数目与脚本数目不一致!"
Exit Sub
End If
Set XLS = New Excel.Application
XLS.Workbooks.Add
XLS.Caption = ReportCaption
Dim I As Integer
Dim J As Integer
Dim K As Integer
If CaptionList.ListCount > 3 Then
For I = 4 To CaptionList.ListCount
XLS.Worksheets.Add
Next I
End If
'frmWritting.Show '进度条窗体,如果没有,请屏蔽此行
'frmWritting.lblSum.Caption = CaptionList.ListCount '进度条窗体,如果没有,请屏蔽此行
For I = 1 To CaptionList.ListCount
XLS.Sheets(I).Select
CaptionList.ListIndex = I - 1
XLS.ActiveSheet.Name = CaptionList.Text
SQLList.ListIndex = I - 1
'在此填入数据
RefreshMSFG MSFG, SQLList.Text
ReplaceHeader MSFG
'frmWritting.lblCur.Caption = I '进度条窗体,如果没有,请屏蔽此行
'frmWritting.ProcBar.Min = 0 '进度条窗体,如果没有,请屏蔽此行
'frmWritting.ProcBar.Max = MSFG.Rows '进度条窗体,如果没有,请屏蔽此行
'frmWritting.ProcBar.Value = 0 '进度条窗体,如果没有,请屏蔽此行
XLS.Cells(1, Int(MSFG.Cols / 2)) = CaptionList.Text
If MSFG.Cols > 3 Then
XLS.Cells(2, 1) = "操作员:" & CurUser
XLS.Cells(2, MSFG.Cols - 1) = Format(Time, "h:mm:ss")
XLS.Cells(2, MSFG.Cols - 2) = Format(Date, "yyyy-m-d")
Else
XLS.Cells(2, MSFG.Cols) = Format(Time, "h:mm:ss")
XLS.Cells(2, MSFG.Cols + 1) = Format(Date, "yyyy-m-d")
End If
For J = 1 To MSFG.Rows
For K = 1 To MSFG.Cols - 1
XLS.Cells(J + 2, K).Value2 = MSFG.TextMatrix(J - 1, K)
Next K
'frmWritting.ProcBar.Value = frmWritting.ProcBar.Value + 1 '进度条窗体,如果没有,请屏蔽此行
Next J
Next I
'frmWritting.Hide '进度条窗体,如果没有,请屏蔽此行
XLS.Visible = TrueEnd Sub
写XLS的函数参数中有两个ListBox 分别是
CaptionList 和 SQLList
他们的功能是提供一个列表框,一次性处理多个表的数据,
也就是说, 把多个表的内容同时写到 Excel 对应的 Sheet 中去。函数中还有一句是
RefreshMSFG MSFG, SQLList.Text
这个是用来填充 FlexGrid 用的 如果你可以把它去掉,如果你不需要更改 FlexGrid 的内容,
MSHFlexGrid的值是用Recordset供给的!
那用EXCEL的值也应该由Recordset供给的????例如Command1_Click()立即把MSHFlexGrid输出的EXCEL里,是怎样调用到上面各位大哥教小弟的那个EXCEL函数呢?在一次感谢各位大哥的帮忙!!!!!!!!!!!!!!!!!