首页 > 解决方案 > MS ACCESS 让 SQL 语句运行并返回要在别处使用的值

问题描述

帮助 !:)

我的 Access DB 中有一些 VBA 代码,我似乎无法正常工作。我想要一个按钮来启动 SQLSELECT语句,然后返回它得到的值。

我需要这个来允许用户在输入框中输入一个字母,但我需要它的值是一个数字。因此,我尝试使用此 SQL 语句从包含所有版本(a、b、c、d 等)的表中返回数字Eddition_Aide及其相应的 ID 号。

但我似乎无法让它工作。

这是代码:

Dim NewEd As String
    
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec

NewEd = InputBox("Enter new edition")
TempVars("xNewEd") = NewEd

Dim SQLdata As String
SQLdata = "SELECT TB_Eddition_Aide.ID_Key " & _
          "FROM TB_Eddition_Aide " & _
          "WHERE TB_Eddition_Aide.Edditions_Txt=[Tempvars]![xNewEd];"

Me.ED_Start_Date = InputBox("Enter first Start Date", , Date)
Me.AllowAdditions = False
DoCmd.Save

标签: sqlms-accessselect

解决方案


尝试这样的事情:

Dim NewEd   As Long
Dim NewKey  As Long
Dim NewDate As Variant
    
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec

NewEd = Val(InputBox("Enter new edition"))
If NewEd > 0 Then
    NewKey = Nz(DLookup("ID_Key", "TB_Eddition_Aide", "Edditions_Txt = " & NewEd & ""))
    If NewKey > 0 Then
        NewDate = InputBox("Enter first Start Date", , Date)
        If IsDate(NewDate) Then
            Me!ED_Start_Date.Value = CDate(NewDate)
            Me.Dirty = False
        End If
    End If
End If
Me.AllowAdditions = False

推荐阅读