2009-11-23 92 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 

上面的代码应该给你一个好的开始。