2012-09-18 70 views
3

我在Access 2007中創建了一個小型數據庫,它由一個表格和兩個表單組成,一個用於輸入數據,另一個用於檢索數據。如何將單選按鈕的值從1,2,3等更改爲文本值?

我的問題是這樣的:在我的輸入表單中,我有一個包含三個單選按鈕的組框。被問到的問題是元素是傳感器嗎?
的按鈕代表沒有,並不知道

在我有一個名爲傳感器來保持用戶選擇的值列的數據庫,但因爲單選按鈕返回一個值,爲沒有,或對於不知道,它會生成報告或查詢,這對用戶來說很有意義。

在這一點上,我正在編寫嵌套iif的巨大SQL語句以我想要的方式返回數據。

有沒有一種方法來填充表中的數據,我想看到它的方式(是,不,不知道),而不是填充1的2或3?順便說一下,這是一種綁定的形式,我希望我能做到這一點,但我現在不能回去。

回答

1

我會建議不要使用單選按鈕,而是選擇一個組合框。您可以直接在組合框中爲結果使用字符串值。現在

,如果你在使用單選按鈕死心塌地,試試這個:

添加一個新的領域你的表中包含的文本。將它綁定到窗體上的隱藏文本框中。 然後,添加一個BeforeUpdate事件(或AfterUpdate取決於你在做什麼)到收音機組。添加類似於以下內容的代碼:

Sub RadioGroup_BeforeUpdate(cancel As Integer) 
    Select Case Me.RadioGroup.Value 
     case 1 
      Me.hiddenTextField.value = "Yes" 
     case 2 
      Me.hiddenTextField.value = "No" 
     case else 
      Me.hiddenTextField.value = "Don't Know" 
    End Select 
End Sub 

現在,當您保存記錄時,人們可讀的值將在您添加的新字段中可用。

+0

我被卡在單選按鈕,多數民衆贊成在老闆想要它。我喜歡你提出的解決方案,我會試一試,非常感謝你! – user1680893

+0

您提出了一個非標準化表格。只要數據編輯完全通過表格(或表格)完成,它仍然可以相當好地工作。如果其他方法可能發生更改(批量導入,直接編輯表等),則存儲的數字和文本描述符可能很容易不同步。這不會是一件好事。 – HansUp

+0

@HansUp你是對的。我認爲OP首先想要人類文本版本。儘管如此,他甚至可以解除無線電組織的束縛;僅使用它來設置隱藏文本字段並刪除表中已有的數字版本。 – dmarra

1

您可以在創建選擇字符串時使用Select Case,而不是將iif嵌套在SQL中。

Select Case Me.rdoSensor 
    Case 1 
     sSQL=sSQL & " AND Sensor='Yes'" 
    Case 2 
     sSQL=sSQL & " AND Sensor='No'" 
    Case 3 
     sSQL=sSQL & " AND Sensor='Don''t know'" 
End Select 
2

以來,單選按鈕用於返回值是1,2無,或3不知道,它使生成報表或查詢有意義的用戶來說非常困難。

店這3對,排在Sensor_Values表:

sval descriptor 
1 yes 
2 no 
3 don't know 

然後你就可以加入該表包括存儲Sensor號碼錶。

SELECT yt.Sensor, sv.descriptor 
FROM 
    YourTable AS yt 
    INNER JOIN Sensor_Values AS sv 
    ON yt.Sensor = sv.sval; 

如果你反對創建和加入一個查找表,你可以使用一個Switch()表達在查詢到的數字Sensor值轉換爲它們的文本形式。

SELECT 
    Switch(
     Sensor = 1, "yes", 
     Sensor = 2, "no", 
     Sensor = 3, "don't know" 
    ) AS sensor_text 
FROM YourTable; 

Switch()方法可以工作,但可能是更具挑戰性比查找表的方法來維持。

我的意圖是向您展示相當簡單的方法,使用選項組值作爲數字,而不是「」用我想要看到的數據填充表格(是,否,不知道)使用1的2或3填充

作爲一般規則,您將更好地使用Access控件,因爲它們被設計用於使用。每當你有一個令人信服的理由時,打破這個規則......但是違反規則需要你額外的努力......就像更多的VBA代碼一樣。我建議的方法不需要任何VBA。

+0

這實際上是我在找的東西。我讀過你,通過創建另一個帶有連接的表來做到這一點,但我不確定如何去做。我會看看我能否得到這個工作。非常感謝! – user1680893

+0

與查詢設計器進行實驗。添加這兩個表並將鏈接字段從一個表拖到另一個表中的鏈接夥伴。這應該在兩者之間建立連接線。然後,您可以切換到SQL View以查看連接的實際SQL語法。 – HansUp

相關問題