2015-06-01 59 views
0
中的隨機列表替換

我有兩個字段:狀態和城市的訪問表。國家是獨一無二的,城市應該是一樣的。Microsoft Access:刪除表中的重複項,並用表

我有一張表顯示與同一城市重複的狀態。我想讓這座重複的城市在國家內成爲隨機的。我還有另一張桌子叫出各州的城市。

我目前有:

State 
Washington Seattle 
Washington Seattle 

我希望它是:

Washington Seattle 
Washington Bellevue 

如何刪除重複的城市,像例子中的狀態取代它的一個具有隨機地城以上?

假設我有一個單獨的表格,可以創建一個表格來呼出某州的所有城市。

我不知道如何解決這個問題。謝謝您的幫助。

+0

如果有什麼是否有更多的城市可用記錄? –

+0

@invent - animate,我不認爲會發生這種情況,因爲我們每天只會顯示最多20個州。每兩天我們都希望這個城市是獨一無二的,而不是被使用。兩天結束後,城市可以再次使用。謝謝 – Nguyenal07

回答

0

做到這一點的一種可能方式(基於您的評論)是爲城市表格添加兩個字段。稱之爲[Used]和[DateUsed]。使用某種類型的隨機函數來選擇你的城市。在您使用城市時,將[used]字段更改爲true,並將當前日期放入[Dateused]字段。使用查詢只能拉出標記爲False的城市。您可以運行日常查詢,任何[Dateused]早於2天的日期,您可以清除[used]字段中的真標誌並清除[DateUsed]字段。

dim db as dao.databse 
dim rs as dao.recordset 
dim sql as string 
dim x as integer 

x = 0 
set db = currentdb 
Do While X < 20 
    sql = "SELECT * FROM [tblcities] WHERE [Used] = false AND stateID = " & some value for stateID 
    set rs = db.openrecordset(SQL,dbopenDynaset) 
    if rs.recordcount > 0 
     rs.movefirst 
     do while not rs.eof 
      if randomfunction() = true //just an example, you'll have to come up with the random function on your own. 
       SQL = "UPDATE [tblCities] SET [Used] = True, [DateUsed] = DATE() WHERE StateID = " & Some Value for StateID & " AND CityName = '" & rs!cityName & "'" 
       docmd.RunQuery SQL 
       break do 
      end if 
     rs.movenext 
     loop 
    end if 
    set rs = nothing 
    x = x + 1 
loop 

set rs = nothing 
set db = nothing 

(粗糙的代碼,我敢肯定有丟失的小錯字或語法錯誤的,但是這並不意味着是一個完整的例子,只是把你指向一個方向。)