3
A
回答
3
如果你想在一個表中備註字段限制爲不超過300個字符,在設計視圖中打開表並添加此作爲字段的有效性規則屬性。
Len([memo_field])<301
將您的字段名替換爲memo_field。違反規則時,您還可以添加驗證文本屬性以顯示更加用戶友好的消息。在沒有驗證文本的情況下,該規則會生成此消息......這可能對用戶來說不是很清楚:
*驗證規則'Len([memo_field])< 301'設置禁止一個或多個值爲'YourTableName.memo_field'。輸入該字段的表達式可以接受的值。*
您還提到了一個文本框。如果它是綁定到備註字段的文本框,則可以驗證文本框的Before Update事件中的字符長度。如果文本框被命名爲txtMemo_field:
Private Sub txtMemo_field_BeforeUpdate(Cancel As Integer)
If Len(Me.txtMemo_field) > 300 Then
MsgBox "Please limit data to maximum of 300 characters."
Cancel = True
End If
End Sub
消息框後,將光標仍然位於在文本框中,並且用戶將不會被允許移動到另一種形式的字段沒有用於供給一個可接受的值txtMemo_field。
1
2
只是爲了解決@ HansUp的回答一點:
Is Null Or Len([memo_field])<301
...如果你不希望允許空值 ,刪除「爲空或」部分。
沒有必要明確測試約束中的空值。一個約束不需要評估TRUE就可以滿足。
如果Jet數據庫引擎(ACE,李連杰,等等)竟然出現了規範它會這樣寫:
表約束是滿意的,當且僅當指定的 搜索條件是不是假的表中的任何一行。
據處理空值所需的三值邏輯,搜索條件LEN(NULL) < 301
取值爲UNKNOWN和表約束將被滿足(因爲UNKNOWN不是FALSE)。
但是,Access沒有這樣的規範,所以我們必須測試並看到上面的斷言是真的(只需複製並粘貼到任何VBA模塊中,不需要引用,在用戶的臨時文件夾中創建一個空白mdb,然後創建表,驗證規則 - 無需顯式測試null - 然後嘗試添加成功的空值QED):
Sub WhyTestIsNull()
On Error Resume Next
Kill Environ$("temp") & "\DropMe.mdb"
On Error GoTo 0
Dim cat
Set cat = CreateObject("ADOX.Catalog")
With cat
.Create _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
Environ$("temp") & "\DropMe.mdb"
With .ActiveConnection
Dim Sql As String
Sql = _
"CREATE TABLE Test (" & _
" ID INTEGER NOT NULL UNIQUE, " & _
" memo_field MEMO" & _
");"
.Execute Sql
End With
' Create Validation Rules
Dim jeng
Set jeng = CreateObject("JRO.JetEngine")
jeng.RefreshCache .ActiveConnection
.Tables("Test").Columns("memo_field") _
.Properties("Jet OLEDB:Column Validation Rule").Value = _
"LEN(memo_field) BETWEEN 1 AND 300"
jeng.RefreshCache .ActiveConnection
Sql = "INSERT INTO Test (ID, memo_field) VALUES (1, NULL);"
.ActiveConnection.Execute Sql
Sql = "SELECT * FROM Test;"
Dim rs
Set rs = .ActiveConnection.Execute(Sql)
MsgBox rs.GetString(2, , , , "<NULL>")
Set .ActiveConnection = Nothing
End With
End Sub
相關問題
- 1. 如何在2013訪問中存儲超過255個字符的數據?
- 2. 訪問令牌是否可以超過255個字符?
- 3. 如何打印超過255個字符的數組? (VBA字)
- 4. 如何繞過Word組合框中的255個字符限制?
- 5. 如何在MySQL數據庫中存儲超過255個字符?
- 6. 在255個字符處的Powerpoint超鏈接限制
- 7. 255個字符的超鏈接或圖片類型限制
- 8. 如何在通過255字段限制的訪問中組合表?
- 9. 如何在CONCATENATE()Excel函數中創建超過255個字符的超鏈接?
- 10. 如何檢索長度超過255個字符的range.address?
- 11. 訪問和VBA讀取每行超過255個字符的文本文件
- 12. 如何克服條件定義的255個字符限制?
- 13. MailMerge查詢字符串超過255個字符
- 14. 搜索超過255個字符長的字符串在VBA WORD
- 15. 的Python:ZIP解壓有超過255個字符的字符串
- 16. Excel.Range.Find使用長度超過255個字符的字符串
- 17. 如何設置hibernate-mapping以允許字符串超過255個字符?
- 18. VBA範圍255字符限制
- 19. Microsoft Access ODBC連接字符串限制爲255個字符?
- 20. php chr()的數字超過255
- 21. 填寫超過255個字符的單詞表單字段
- 22. C#錯誤插入到Excel時字符串數據是超過255個字符
- 23. 如何在Word-VBA中創建超過255個字符的可編輯字段?
- 24. 超過255的opencv數組
- 25. (VBA)字小姐:各地255個字符限制工作
- 26. Excel數據驗證 - 超過256個字符限制的公式
- 27. 如何創建多個IP SPF記錄(SPF超過255個字符)
- 28. 如何在Z3py函數中使用超過255個參數?
- 29. 讓Hawtio在JMS消息中顯示超過255個字符
- 30. RWDBReader無法讀取超過255個字符
驗證規則即使在允許空值時也需要測試'IS NULL'嗎? – onedaywhen
...我自己回答了這個問題:) – onedaywhen
@onedaywhen是的,你是對的;我不留神。我糾正了答案。謝謝。 – HansUp