簡體   English   中英

MS Access VBA問題

[英]MS Access VBA issue

我在MS Access中創建一個報告 - 我在這里嘗試做的基本上是對我已經創建的表的APPEND查詢 - 我選擇第一個值,更改它並更新表。 我遇到的問題是 - 這個報告將由VB6應用程序使用。 因此用戶根本不會看到Access。

我追加查詢的問題是它需要運行一個USER ID (4位數字)。 通常,當我在Access中運行報表時,我會將參數傳遞給Access中的表單-然后使用它們來運行查詢。 但是,在這種情況下,我需要用戶在附加查詢時輸入一個值,另外,當在VBA中附加查詢時,它首先說"You are about to append a query, are you sure" (或者沿着那些行) ,有沒有辦法自動化,所以當我追加它沒有任何反應?

這是我從tempTable添加和選擇日期的tempTable

CurrentDb.Execute "DELETE from [tempCompanyMgmt-NOW];"
DoCmd.OpenQuery "qryCompanyMgmt-SUE" - i made this append!
Set rs1 = CurrentDb.OpenRecordset("Select * from [tempCompanyMgmt-NOW]", , dbOpenDynamic)

因此,只要我按OK,當我收到APPEND流程通知並輸入USER ID參數時, USER ID一切正常。

第二行應該是您的減價中的錯字。

DoCmd.OpenQuery "qryCompanyMgmt-SUE - i made this append!"

你需要刪除qryCompanyMgmt-SUE - i made this append!對表單的引用qryCompanyMgmt-SUE - i made this append! 查詢,並將其替換為參數名稱。 您可以使用Access接口向查詢顯式添加parameters子句,然后使用VB6中的ADO(或DAO),在打開/執行查詢之前設置參數值。

"You are about to append a query, are you sure"消息是一種訪問功能(可以禁用),因此,如果您希望VB6應用程序提供這樣的警告,則需要您自己創建一個MsgBox

一種選擇是將您的追加查詢放入代碼中,然后以這種方式填寫參數。

我不知道您的確切情況,但是類似:

If not isValidUserID(me.UserID) Then
    msgbox "Please enter a a valid user id"
    exit sub
End If



Dim strSQL As String
strSQL = "DELETE * from [tempCompanyMgmt-NOW];"
CurrentDb.Execute strSQL, dbFailOnError


strSQL = "INSERT INTO tempCompanyMgmt-NOW ( FieldName1, FieldName2, FieldName3 ) " & _
        "SELECT FieldName1, FieldName2, FieldName3 FROM tempCompanyMgmt WHERE UseriD=" & Me.UserID

CurrentDb.Execute strSQL, dbFailOnError

要驗證用戶標識,您可以執行以下操作:

If (Len(me.UserID) = 4 And IsNumeric(me.UserID)) Then

要么

Public Function isValidUserID(varUserID As Variant) As Boolean
Dim blnRet As Boolean

If Len(varUserID) = 4 And IsNumeric(varUserID) Then
    blnRet = True
End If

isValidUserID = blnRet
End Function

為了擺脫MsgBox告訴我,我打算附加一個查詢,我在打開我的追加查詢之前將其包含在我的模塊中。

DoCmd.SetWarnings False

我意識到,一旦我將值傳遞給表單(userID),當我的查詢被追加時,該值將作為參數傳遞。 一切准備就緒。 謝謝大家的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM