首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VB6.0 WebBrowser 控件動態生成 HTML 表格顯示 Recordset 數據

     編輯:程式設計綜合問答

在 VB6.0 中使用 Microsoft Internet Controls (WebBrowser) 動態生成 HTML 表格展示 ADO Recordset 數據,關鍵在於正確構建 HTML 字符串並賦值給 Document.body.innerHTML。

完整實現代碼

Private Sub Command1_Click()
    Dim strHtml As String
    strHtml = "<html>" & vbCrLf
    strHtml = strHtml & "<head><meta charset=""utf-8""></head>" & vbCrLf
    strHtml = strHtml & "<body>" & vbCrLf
    strHtml = strHtml & "<h1 align='center'>報告單</h1>" & vbCrLf
    strHtml = strHtml & RecordsetToHtmlTable(Adodc1.Recordset) ' 調用函數生成表格
    strHtml = strHtml & "<br><input type='button' value=' 列印此頁 ' onclick='window.print()'>" & vbCrLf
    strHtml = strHtml & "</body></html>"
    
    ' 關鍵:確保 Document 就緒後再賦值
    On Error Resume Next
    WebBrowser1.Document.body.innerHTML = strHtml
    If Err.Number <> 0 Then
        MsgBox "WebBrowser 文檔未就緒,請先導航到 about:blank"
    End If
End Sub

Private Sub Form_Load()
    WebBrowser1.Navigate2 "about:blank" ' 初始化空白頁
End Sub

Function RecordsetToHtmlTable(rs As ADODB.Recordset) As String
    Dim html As String, f As ADODB.Field
    html = "<table border='1' cellpadding='3' cellspacing='0' class='data'>"
    html = html & "<tr>"
    For Each f In rs.Fields
        html = html & "<th>" & f.Name & "</th>"
    Next
    html = html & "</tr>"
    
    rs.MoveFirst
    Do While Not rs.EOF
        html = html & "<tr>"
        For Each f In rs.Fields
            html = html & "<td>" & IIf(IsNull(f.Value), " ", f.Value) & "</td>"
        Next
        html = html & "</tr>"
        rs.MoveNext
    Loop
    html = html & "</table>"
    RecordsetToHtmlTable = html
End Function

關鍵點總結

  1. 初始化 WebBrowser:Form_Load 中 Navigate2 "about:blank" 確保 Document 物件存在。
  2. 函數返回字符串:RecordsetToHtmlTable 返回完整 <table> HTML,避免在函數中直接操作 response.Write(ASP 風格,VB 中無效)。
  3. 字符串拼接:用 & vbCrLf 保持 HTML 可讀性,便於調試。
  4. 錯誤處理:賦值 innerHTML 前用 On Error Resume Next 防止文檔未就緒報錯。
  5. 列印功能:onclick='window.print()' 直接調用瀏覽器列印對話框。

此法將數據展示邏輯與界面分離,易於維護樣式(可在 HTML 中嵌入 CSS),是 VB6.0 開發報表的經典技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved