2016-12-13 75 views
-2

我的表單由窗體標題,詳細信息部分和窗體頁腳(設計模式)劃分。所有表字段在詳細信息部分中列出。MS ACCESS - 以表格形式動態更改數據

我必須這樣做 - 當我點擊人的名字時(顯示爲超鏈接)詳細信息部分必須向我顯示錶中的記錄,其中名稱字段值等於我單擊的記錄。顯示的字段數量應保持不變。

我寫了一篇關於VB的程序:

Private Sub GE_PERSON_Click() 

Dim strSQL As String 

strSQL = "SELECT GENERIC.GE_ID, GENERIC.GE_OPEN AS [OPEN], Workforce.WF_NAME AS PERSON, [GENERIC].[GE_DATEIN] AS RECEIVED, GENERIC.GE_DATEREQUESTED AS [STARTING DATE], GENERIC.GE_CONSECUTIVE AS CONSECUTIVE, GENERIC.GE_AMOUNT AS [DAYS TAKEN], ABSENCE.AB_TYPE AS [ABSENCE TYPE], [GENERIC].[GE_STATUS] AS STATUS" 
strSQL = strSQL + "FROM (GENERIC INNER JOIN Workforce ON GENERIC.[GE_PERSON] = Workforce.[WF_ID]) INNER JOIN ABSENCE ON GENERIC.[GE_TYPE] = ABSENCE.[AB_ID]" 
strSQL = strSQL + "WHERE WORKFORCE.[WF_NAME] = " + Form_GENERIC.GE_PERSON 
strSQL = strSQL + "ORDER BY GENERIC.GE_DATEREQUESTED;" 

Form_GENERIC.RecordSource = strSQL 

End Sub 

當我分配到strSQL我收到錯誤的Form_GENERIC.RecordSource。我無法從形成串數據發送到主窗體通用的記錄源 - 這導致錯誤

運行時錯誤3141:SELECT語句包含保留字或拼寫錯誤,或缺少,或標點符號的參數名不正確

絕對需要你的幫助!

+0

如何相關的記錄顯示?有沒有子表單?您的表單描述不足以產生明確的答案。 – MoondogsMaDawg

+0

讓我看看我是否得到了這個......當你點擊'NAME'字段時,它會過濾當前表單(你沒有提到是否有子表單,如果它是一個分開的子表單或什麼將顯示過濾的記錄)。假設它處於電子表格模式。 – Lybren

+1

[如何在VBA中調試動態SQL](http://stackoverflow.com/questions/418960/managing-and-debugging-sql-queries-in-ms-access/1099570#1099570) – Andre

回答

1

當您連接字符串時,請確保在每行的開頭或末尾包含一個空格。否則,這些字符串會被擠在一起,導致您看到的錯誤。

E.g.如果你這樣做

strSQL = "SELECT field1, field2" 
strSQL = strSQL + "FROM table" 

你結束了這個

"SELECT field1, field2FROM table" 

添加一個空格,以防止錯誤

strSQL = "SELECT field1, field2" 
strSQL = strSQL + " FROM table" 
       ^
        put a space at the start of each concatenated line 
相關問題