选择表格的特定记录
好的,在这个表格中,我创建了一个网格,几乎看起来像是一个条形图,上面有很少的“单元格”。这些“细胞”中的每一个都是方形的子形式,我创建了我用作子形式的小方形形式。选择表格的特定记录
所以我想知道的是,运行选择查询的代码(VB)是什么,并且只在该查询中使用特定的记录?例如,这些小单元格中的每一个都可以成为子表单,代表一个组织,如果我运行一个顶级的第N个查询,我可以通过任何方式获得10顶级商店....所以这个想法是使用每个小表格作为该查询中每条记录的代表。因此,对于第一个单元格,我想运行SELECT查询,获得结果,并且仅与第一条记录一起工作。然后在第二个窗体上运行完全相同的查询,并仅使用第二个记录,依此类推!
它有点怪异,我想,但它会给他们自己想要什么,而只是一部分,我不知道,是“准确定义我想在VBA使用哪个记录”
谢谢!
你可以改变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为链接子字段的链接主字段。
链接主字段和链接子字段是子窗体控件的属性,而不是包含的窗体。
如果我正确理解你的要求,你可以做这样的事情。
表结构
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
哇...我认为这可能是最简单的...我会试试看!谢谢! – Justin 2009-11-23 12:23:11
你把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
上面的代码应该给你一个好的开始。
感谢Remou ....问题我该如何完成链接带ID的主域作为子窗体的链接子域? 谢谢! – Justin 2009-11-23 12:21:24
可以将它们填充到子窗体控件的属性表中,以便区分子窗体控件和所包含的窗体。 – Fionnuala 2009-11-23 12:36:23