【问题标题】:Microsoft Access after splitting no longer able to input values?拆分后的 Microsoft Access 不再能够输入值?
【发布时间】:2021-10-25 00:45:27
【问题描述】:

我有一个表格,可以自动填充表格中的值。在我拆分访问文件之前,下面的代码运行良好。但它不再填充空文本框。感谢您的帮助!

    'Finds the new tag number
    'Define components
    Dim rs As Recordset
    Dim strSQL As String
    Dim db As DAO.Database
    Set db = CurrentDb

    'SQL statement broken up in parts
    strSQL = "SELECT Top 1 IncomingCoilTable.[Tag #] "
    strSQL = strSQL & "FROM IncomingCoilTable "
    strSQL = strSQL & "ORDER BY IncomingCoilTable.[Tag #] DESC "
    
    'Setting the statement to variable
    Set rs = db.OpenRecordset(strSQL)
    myValue = rs.Fields(0)
    NewCoilNumber.Value = myValue + 1

【问题讨论】:

  • 你调试了吗?可以使用 DMax() 域聚合函数而不是打开记录集对象。建议不要在命名约定中使用空格或标点符号/特殊字符。
  • 调试器没有想出任何东西,但是为了提供上下文,这会在表单加载时发生。我没有附加到命名约定,所以可以改变
  • 那么代码确实执行了吗?但是变量没有得到值?
  • Debugging VBA Code@jeremykleiber
  • 此代码与您的问题描述不符。你在哪里加载文本框?您是否尝试过转储 SQL 并从查询中对其进行测试?您是否从记录集中取回任何记录?

标签: sql vba ms-access


【解决方案1】:

感谢大家的帮助,我设法回滚了一个版本并将其拆分,效果很好。不知道为什么它以前不起作用,我也不明白为什么调试器不起作用。很高兴它现在可以工作了!

【讨论】:

    【解决方案2】:

    放在你的模块顶部:

    Option Explicit
    

    指定你的变量:

     'Define components
        Dim db As DAO.Database
        Dim rs As Recordset
        Dim strSQL  As String
        Dim myValue As Long
    
        Set db = CurrentDb
    
        'SQL statement broken up in parts
        strSQL = "SELECT Top 1 IncomingCoilTable.[Tag #] "
        strSQL = strSQL & "FROM IncomingCoilTable "
        strSQL = strSQL & "ORDER BY IncomingCoilTable.[Tag #] DESC "
        
        'Setting the statement to variable
        Set rs = db.OpenRecordset(strSQL)
        myValue = rs.Fields(0).Value
        NewCoilNumber.Value = myValue + 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 2017-11-22
      • 2017-05-12
      • 2018-12-25
      相关资源
      最近更新 更多