使用VBA在Access表中查找值而没有唯一标识符的情况

亚历克斯

我有一个这样的表:

+-----------+------+
| TableName | Flag |  
+-----------+------+
| TableG    |    0 |  
| TableE    |    0 |  
| TableR    |    1 |  
| TableL    |    1 |  
| TableN    |    0 |  

我想做的是有一个函数,其中查找Flag = 1的每个TableName,以便我可以将Flag = 1的每个表分配给表单中的按钮(例如,将第一个实例分配给Button1,等等)。棘手的是,该表无法编辑,因此无法分配唯一的ID /计数来轻松地获取项目。

到目前为止,这是我尝试过的方法:

  • DLookup无法处理具有多个查找匹配项(例如DLookup(“ TableName”,“ MyTable”,“ Flag = 1”)不允许我访问Flag = 1的所有值),所以我认为我无法使用将它们存储在数组中
  • 我已经尝试过使用RecordSet(请参见下文),但是我不知道如何让SQL字符串自动添加计数,以便可以引用每个表名(例如TableNameRS(1)来提取第一个表的名称)带有Flag = 1)
    Public Function TableNameRS(TableID As Integer)
     Dim RS As DAO.Recordset
     Dim SQL As String
     Dim Name As Variant
     SQL = "select TableName, COUNT(TableName) from MyTable where Flag=1"
     Set RS = CurrentDb.OpenRecordset(SQL)
     Name = RS("TableName")
     TableNameRS = Name
     RS.Close
    End Function

我没有主意-在这里我有什么选择?

六月7

如果记录和按钮的数量是固定的,例如10,并且按钮的名称如btn1,btn2等,请考虑以下过程:

Public Sub TableNameRS(TableID As Integer)
    Dim RS As DAO.Recordset
    Set RS = CurrentDb.OpenRecordset("SELECT TableName FROM MyTable WHERE Flag=1 ORDER BY TableName")
    For x = 1 to 10
        Me("btn" & x).Caption = RS("TableName")
        RS.MoveNext
    Next
    RS.Close
End Function

程序可以以Open事件的形式调用。然后,Click事件中的代码可以将其标题作为参数传递给需要使用TableName值进行操作的任何其他过程。

在Access查询中计算序列标识符是MS Access重新启动编号序列的常见主题

假设TableName值是唯一的:

SELECT TableName, DCount("*", "table", "TableName<'" & [TableName] & "' AND Flag=1")+1 AS Seq, 
FROM table
WHERE Flag=1
ORDER BY TableName;

可以将该查询用作表单或报表的RecordSource或在其上执行DLookup()。

请注意,过滤器的任何更改都会影响序列计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用多张工作表中的唯一标识符查找和替换列中的值

如何在没有唯一标识符的情况下抓取跨度?

用唯一标识符替换所有列中的每个唯一值

没有唯一标识符的自举崩溃

没有唯一标识符的内连接

有没有办法在MPI中获得唯一的通信器标识符?

如何在硒中没有唯一标识符的元素中定位?

Selenium (c#) - html 元素中没有唯一标识符 - javascript?

在没有唯一标识符的项目上使用“ListAdapter” areItemsTheSame

使用BeautifulSoup刮除没有唯一标识符的元素

使用 Selenium 选择没有唯一标识符或事件的按钮

Python中是否有对象唯一标识符

iOS中的私有唯一设备标识符

根据熊猫中其他列的值添加具有唯一标识符的列

使用非唯一标识符更新和选择FIFO队列中的MySQL表

React:如何在没有索引或唯一标识符的情况下修改基于数组的状态?

使用唯一标识符,将行值与R中的列名匹配

如何使用R在缺少某些值的唯一标识符中添加缺失的零?

匹配来自两个表的人口统计信息,没有唯一标识符

如何从<span>中刮取一些没有唯一类标识符的文本?

查找SD卡的唯一标识符

在几列中查找唯一的一组标识符/组

如何生成8位数字的唯一标识符以替换python pandas中的现有标识符

通过唯一标识符组合行和总和值VBA Excel

XQuery 如何将具有唯一标识符的相似 XML 结构中的值相加

Python Pandas:根据其他列中的唯一标识符创建具有最小值的新列

如何在元组中查找列表的唯一标识符?

如何在没有顺序int标识符的情况下仅更新SQlite中的第一行?

使用非唯一标识符来查找与 jquery 的兄弟