2015-03-02 125 views
0

我想弄清楚如何使用組合框使用組合框來創建窗體,同時組合框使用查詢。我試圖做的是讓組合框在更改後更新。他們有65個組合框,每個組合框都有自己的默認值(1-65)。主表有一個名爲「Recall_Position」的列,並且查詢從此處以及「姓氏」和「名字」拉取。當窗體打開時,每個組合框都會自動填充「Recall_Position」等於組合框默認行的行的最後一個名稱。基於表單組合框更改數據表單元格

示例1:包含「Recall_position」中第一個數字的行在「Lastname」下的同一行中具有名稱Smith,當打開表單時設置爲「1」的組合框因爲默認情況下將使用Smith打開已經在組合框中選擇。這已經確定並且沒有問題。

我想要得到的是當在組合框中選擇了不同的「姓氏」時,它將清除「姓氏」中的號碼並用該組合框的默認號碼設置新的「姓氏」。

示例2:使用示例1當組合框從史密斯更改爲伍茲時,它將在「姓氏」中找到史密斯,然後轉到「召回位置」下的同一行並清除史密斯的編號,然後找到伍茲並將「召回位置」 「1」。

如果我必須通過並添加一個VBA來回更改每個組合框,它不會打擾我。其原因是我創建的報告將根據「Recall_position」提取信息來創建名稱和電話號碼的名單。

combo boxes

+0

不知道我明白 - 你可以把上傳的截圖?你想改變什麼組合框?全部50? – 2015-03-02 13:37:22

+0

該程序很難從單詞中理解。試着用一些圖片和一步一步的描述來更新你的問題。我認爲其他人也覺得很難,因爲目前還沒有人回覆。 – 2015-03-05 08:15:48

+0

更新了問題。 – user2002716 2015-03-11 18:14:26

回答

0

嘗試使用此例如2:

Dim dbs As New ADODB.Connection 
Dim rst As New ADODB.Recordset 

Set dbs = CurrentProject.Connection 
    With rst 
     Set .ActiveConnection = CurrentProject.Connection 
     .Source = "TheTableYouHave" 
     .CursorLocation = adUseClient 
     .CursorType = adOpenKeyset 
     .LockType = adLockOptimistic 
     .Open 
    End With 
rst.MoveFirst 

rst.Find "[Recall Position] "27"" ' Will go to line number that hold 27 
OldLastName = rst!LastName ' Save the old last name 
rst!LastName = NewLastName ' Replace lastname in line 27 with new last name 

set dbs = Nothing 
set rst = Nothing 

等等,等等

你也可以更換RST [調用位置]用另一個號碼!這只是給你一個如何做到這一點的想法。 當你使用rst.的東西時,你告訴記錄集要移動到什麼位置,搜索等,當它是rst!某事,你進入記錄集以讀取單元格或替換單元格。它不像excel。你不能做一個單元格(2,5)。在這種情況下,這將是:

rst.move 5 
rst![Column 2 Name] = NewValue 

相當於

cells(2,5) = NewValue 

在Excel(對不起,如果我混行和列)。我希望你明白。 嘗試在VBA中使用Debug.Print rst!WhateverYouLike並瞭解代碼。

此致敬禮,埃米爾。

+0

這種感覺很接近。我不想更改任何信息,除了Recall_position中的數字。我試圖找到或得到的幫助是說,設置爲「1」的組合框的默認值是combo1。因此,以Private Sub Combo1_Change()開頭的代碼在表(「Userdata」)列「Recall_Position」中找到「1」並將其清除。然後找到組合框被更改爲的姓氏,並在「Recall_position」下的同一行中輸入數字1 – user2002716 2015-03-18 15:44:31

+0

或者我在考慮Private Sub Combo1_AfterUpdate() – user2002716 2015-03-18 15:50:03

+0

我仍然會說你需要我提供的代碼。如果你想在表格中移動數字,你需要上面的代碼。除非進行查詢並與之相關,否則不能這樣做......如果要交換f.x.編號1和5,所以5行1和1行5,你需要使用上面的書面代碼。 – 2015-03-18 20:04:40

相關問題