none
關於VB6 的DBGrid問題 RRS feed

  • 問題

  • 各位前輩好,我最近想做一個動作

    我想做一個類似EXCEL表格的東西,然後把每一筆資料每隔五秒鐘丟到 text1.text 裡面

    我依照網路我找到的資料作目前遇到一些問題

    首先我照著http://web2.tcssh.tc.edu.tw/teacher/cjwu/vb/ctl/LMData01.html  裡面做

    之後RUN完OK

    可是因為我要三組資料,原本DBGrid只有兩組,所以我把它改三組候在RUN卻跑出空白= =

    然後再重拉新的表格(兩組的)又會正常,這是我第一個問題

    第二個比較重要的問題是,我要怎麼把表格裡的值抓出來分別丟到不同的text裡面

    比方說第一組的第一欄丟到text1  

    第二組的第八欄丟到text2 之類的...

    還有我想順便問一下能不能新增表格??

    目前我的問題大概就這些

    我還有找到一個程式類似我要的程式碼如下

    ----------------------------------------------------------

    Private Sub Command1_Click()
        Dim oXLApp As Excel.Application     'Declare the object variable
        Set oXLApp = New Excel.Application  'Create a new instance of Excel
        Dim oXLSheet As Excel.Worksheet
        Dim oXLBook As Excel.Workbook

        'oXLApp.Visible = True               'Show it to the user
        'Set oXLApp = Nothing                'Disconnect from Excel (let the user take over)
     
        'read from sheet
        Set oXLBook = oXLApp.Workbooks.Open("C:\Book1.xls")     'Open an existing workbook
        Set oXLSheet = oXLBook.Worksheets(1)
        Label1.Caption = oXLSheet.Cells(3, 1).Value
       
        'write to sheet
        oXLSheet.Cells(5, 1).Value = "Test by VB6"
       
        'save worksheet to (new) file
        Set oXLSheet = Nothing             'disconnect from the Worksheet
        oXLBook.Close SaveChanges:=True    'Save (and disconnect from) the Workbook
        Set oXLBook = Nothing
        oXLApp.Quit                        'Close (and disconnect from) Excel
        Set oXLApp = Nothing
       
    End Sub

    -----------------------------------------------------------

     

    可是執行時感覺有點LAG

    而且語法看起來好像不太像平常再用的VB語法

    所以在此跟各為前輩請教,希望能得到簡單又好懂的方法

    請位各位前輩能夠指導一下,謝謝

     

    PS.我還有看到一個叫DataGrid的東西,這兩個有差嗎?我要的功能用這個也做得出來??

    2011年6月9日 下午 01:09

解答

所有回覆

  • ...

    Automation 的討論在隔壁 Office 開發版。

     

    當你用 Automation 開啟一個 Excel 檔時,他就不能被 ADO 當資料庫存取。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年6月9日 下午 03:40
  • 各位前輩,目前我最重要的動作就是如何從DataGrid裡面抓出特定行列的值,我想先從這部分開始著手

    請問這應該要怎麼做??

    2011年6月10日 上午 08:40
  • 你貼出來的程式碼只有 Automation ,完全沒有 DataGrid ,這要怎樣接下去?
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年6月10日 下午 12:42
  • VB研究小站->VB6控制項運用->[D]DataGrid 列出資料庫的物件,專為ADODC設計。Microsoft DataGrid Control (7)->取出多筆選取時的內容

    http://vb.ncis.com.tw/SVBR2.0/index.html


    2011年6月11日 上午 06:47
  • 我想請問一下各位前輩,目前我已經懂得把值抓取出來,我的程式碼如下

    Private Sub Command3_Click()
    Dim i As Integer
    Dim arr() As Integer
    Data1.Recordset.MoveFirst

     Do Until Data1.Recordset.EOF
    ReDim Preserve arr(i)
    arr(i) = Data1.Recordset("F1")
    Text1(i).Text = arr(i)
    i = i + 1

    Data1.Recordset.MoveNext
    Loop
    End Sub

    以上程式的話我是一次抓一只欄,但我想知道有沒有辦法可以抓到某欄某列的值??

    還有我想刪除新增的那一欄或者隨便某一欄的時候(是要整欄不見喔,不是只有欄裡面的資料不見而已)

    我用


    Private Sub Command4_Click()
    Data1.Recordset.Delete
    End Sub

    結果會顯示

    會跳錯誤視窗顯示

    deleting data in a linked table is not supported by this ISAM.

    請問我應該怎麼做??煩謝前輩們題點一下

    我用的是DBGrid  喔

    2011年6月11日 上午 08:52
  • 您好

    請參考 如何從 Visual Basic 或 VBA 搭配使用 ADO 與 Excel 資料

    刪除 Excel 資料時,會比從關聯式資料來源刪除資料受到更多的限制。在關聯式資料庫中,「列」除了「記錄」之外,並沒有任何意義可言,或者根本就不存在,但在 Excel 工作表就不一樣了。您可以刪除欄位 (儲存格) 中的值。但是,您無法:

    1. 立刻刪除整個記錄,否則您會收到下列錯誤訊息:

    Deleting data in a linked table is not supported by this ISAM. (此 ISAM 不支援刪除連結表格中的資料)

    您只能將每一個個別欄位的內容清空,來刪除一筆記錄。


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年6月13日 上午 12:51
    版主