2009-11-23 95 views
0

好的,在這個表格中,我創建了一個網格,幾乎看起來像是一個條形圖,上面有很少的「單元格」。這些「細胞」中的每一個都是方形的子形式,我創建了我用作子形式的小方形形式。選擇表格的特定記錄

所以我想知道的是,運行選擇查詢的代碼(VB)是什麼,並且只在該查詢中使用特定的記錄?例如,這些小單元格中的每一個都可以成爲子表單,代表一個組織,如果我運行一個頂級的第N個查詢,我可以通過任何方式獲得10頂級商店....所以這個想法是使用每個小表格作爲該查詢中每條記錄的代表。因此,對於第一個單元格,我想運行SELECT查詢,獲得結果,並且僅與第一條記錄一起工作。然後在第二個窗體上運行完全相同的查詢,並僅使用第二個記錄,依此類推!

它有點怪異,我想,但它會給他們自己想要什麼,而只是一部分,我不知道,是「準確定義我想在VBA使用哪個記錄」

謝謝!

回答

2

你可以改變SQL每個子形式爲:

SELECT TOP 1 ID, F1, F2 From Table 

SELECT TOP 2 From Table WHERE ID NOT IN (SELECT TOP 1 ID From Table) 

SELECT TOP 3 From Table WHERE ID NOT IN (SELECT TOP 2 ID From Table) 

<...> 

SELECT TOP 10 From Table WHERE ID NOT IN (SELECT TOP 9 ID From Table) 

或者,看到你已經有了一個有些奇怪的建立,可以使用每個ID寫入到10的一個隱藏的文本框控件記錄集,並將每個文本框用作ID爲鏈接子字段的鏈接主字段。

鏈接主字段和鏈接子字段是子窗體控件的屬性,而不是包含的窗體。

alt text http://ltd.remou.com/linkchildlinkmaster.png

+0

感謝Remou ....問題我該如何完成鏈接帶ID的主域作爲子窗體的鏈接子域? 謝謝! – Justin 2009-11-23 12:21:24

+0

可以將它們填充到子窗體控件的屬性表中,以便區分子窗體控件和所包含的窗體。 – Fionnuala 2009-11-23 12:36:23

1

如果我正確理解你的要求,你可以做這樣的事情。

表結構

ID Autonumber, 
Col1 Text 

VBCode

Private Sub Command0_Click() 
Dim rec As Recordset 
Dim id As Integer 

    Set rec = CurrentDb.OpenRecordset("SELECT TOP 10 * FROM Table1") 

    While Not rec.EOF 
     id = rec.Fields("ID") 
     rec.MoveNext 
    Wend 
End Sub 
+0

哇...我認爲這可能是最簡單的...我會試試看!謝謝! – Justin 2009-11-23 12:23:11

1

你把SQL語句作爲pseudoTable的定義,即一組記錄(記錄集),您可以控制和操縱,如果它是一張桌子。

Dim cnn As ADODB.Connection 
Dim pseudoTable As ADODB.Recordset 
Dim strSQL As String 

    Set cnn = CurrentProject.Connection 
    Set pseudoTable = New ADODB.Recordset 

    strSQL = "SELECT Title FROM realTable where realID < 1000;" 
    pseudoTable.Open strSQL, cnn, adOpenStatic, adLockOptimistic 
    If Not pseudoTable.BOF And Not pseudoTable.EOF Then 
     pseudoTable.MoveFirst 
     Do Until pseudoTable.EOF 
      ' do something with the table 
      pseudoTable.MoveNext 
     Loop 

上面的代碼應該給你一個好的開始。