2013-01-02 3 views
1

Access 2010에서 "서식있는 텍스트"데이터를 백 엔드의 일반 텍스트 필드에 입력 할 수있는 프런트 엔드 양식과 백 엔드 테이블을 어떻게 든 구성했습니다 -end 데이터베이스.Access 2010의 제한된 길이의 텍스트 필드에 서식있는 텍스트 입력

테이블 필드는 255 자 길이의 텍스트 필드로 정의됩니다. 필드의 데이터를 직접 볼 때 다음 형식을 취합니다 : <div>&nbsp;P2 &nbsp;&nbsp;</div> 이는 Access "rich-text"필드에 대한 것입니다.

이 테이블 필드에 바인딩 된 필드는 텍스트 형식의 일반 텍스트 (!)가있는 텍스트 상자입니다. 검증 또는 코드와 관련이 없습니다. 이 필드에 텍스트를 입력하거나 편집 할 때 텍스트 서식을 적용 할 수 있습니다.

많은면에서 이것은 매우 유용합니다. 길이가 255자를 넘는 리치 텍스트 필드가 있습니다. 그러나 정렬 및 필터링은 기본 HTML 마크 업을 보여 주므로 허용되지 않아야하며 다른 단점이 있다는 것을 확신합니다.

그러나 내 사용자는 응용 프로그램의 다른 위치에서 동일한 기능을 요청했을 정도로 사용자가 좋아서 ... 어떻게 작동하는지 알 수 없습니다. 필자는이 특정 데이터 조각에 대한 메모 필드와 일반 텍스트 필드를 비교해보고 이러한 결과를 낳은 일련의 변화를 발견했다고 생각합니다.

필자는 붙여 넣기를 자르고 테이블과 해당 양식 필드의 이름을 바꿔서 성공없이 복제하려고 시도했습니다.

나는 비슷한 상황에 대한 설명을 위해 광범위하게 봤어. 성공하지 못했다.

내가 달성 한 것을 복제 할 수있는 방법이 있습니까?

+0

'MemoField'는 '서식있는 텍스트'를 취할 수 있습니다. 텍스트 필드에 서식있는 텍스트를 삽입 하시겠습니까? – bonCodigo

+0

@bonCodigo, 제한된 길이의 리치 텍스트 필드 - 50 자로 제한되는 메모 필드 또는 서식있는 텍스트를 허용하고 표시하는 텍스트 필드 50 자 길이를 원합니다. – ColeValleyGirl

답변

2

서식있는 텍스트 메모 필드에 연결된 텍스트 상자가있는 양식이있는 경우 해당 텍스트 상자에 유효성 검사 규칙을 설정하여 50 자 이하로 제한 할 수 있습니다. 그 길이 제한은 모든 문자의 총 수 ... 표시 만이 아닌,뿐만 아니라 마크 업 태그 문자를 기반으로합니다 그러나

text box property sheet to display Validation Rule

. 직접 실행 창에서이 예를 참조하십시오

? DLookup("memo_field", "tblFoo", "id =1") 
<div>a <strong>b </strong>c</div> 
? Len(DLookup("memo_field", "tblFoo", "id =1")) 
33 

당신이 길이 제한에서 마크 업 문자를 제외하려면이의 PlainText() 함수를 사용

? PlainText(DLookup("memo_field", "tblFoo", "id =1")) 
a b c 
? Len(PlainText(DLookup("memo_field", "tblFoo", "id =1"))) 
5 

그리고, 유효성 검사 규칙 속성 수있는 경우

이 수 :

=(Len(PlainText([txtMemo_field]))<=50) 

해당 메모 필드에서 필터 조건과 원본 데이터를 쿼리 할 때, 마크 업 태그를 포함하여 모든 저장된 문자 ()가 평가됩니다.내가 프런트 엔드 양식을 구성 어떻게 밖으로 일했다

SELECT * 
FROM YourTable 
WHERE PlainText(memo_field) = "a b c"; 
1

작은 코드로 글자 수를 제한 할 수 있습니다. 한 예는 다음과 같습니다.

Private Sub txtText_KeyPress(KeyAscii As Integer) 
    If Me.txtText.SelStart >= 254 Then 
     KeyAscii = 0 
    End If 
End Sub 

그러나 리치 텍스트가있는 문자 수는 테스트하지 않았습니다.

1

및 "서식있는 텍스트"를 허용하고 테이블 백 엔드 : 마크 업 태그를 무시하도록 필터 조건을하려면 PlainText() 기능을 사용 백 엔드 데이터베이스의 일반 텍스트 필드에 입력 된 데이터

관련 필드가 서식있는 텍스트 필드로 설정된 테스트 백 엔드에 프런트 엔드 데이터베이스를 연결 한 다음 관련 양식 (서식있는 텍스트로 필드 서식 사용)을 작성/편집했습니다. 그런 다음 백엔드 필드가 일반 텍스트라는 점만 제외하고 정확히 동일한 구조의 프로덕션 데이터베이스로 다시 연결했습니다.

권장하지 않지만 작동합니다.

관련 문제