MS Access에서 Me.Recordset에서의 검색문제

익명
2025-01-28T10:51:24+00:00

Form 내에서 검색을 하기 위해 sub procedure를 짰습니다.

두 개의 검색필드에 대해서 각각 동일한 방식으로 코드를 만들었는데요, 이상하게 한 곳은 무리없이 작동하는데, 다른 하나는 검색을 못합니다.

우선, 제대로 작동하는 sub의 코딩은 다음과 같습니다.

Private Sub s_ecrivain_AfterUpdate()

Dim mySet As Recordset

Dim criteria, rEcrvain

Dim Message, Title

Dim scQ, scR

scQ = Chr(34)

scR = Chr(13) & Chr(10)

rEcrvain = Trim(Me![s_ecrivain])

Set mySet = Me.Recordset

With mySet

.MoveFirst 

criteria = "Ecrits.Nom like " & scQ & "\*" & rEcrvain & "\*" & scQ 

.FindFirst criteria 

If .NoMatch Then 

  Message = "찾는 글이 없습니다." 

  Title = "검색 실패!" 

  Msgbox Message

  Exit Sub 

End If 

End With

End Sub

위 서브는 'Ecrit.nom'이라는 필드에서 검색하기 위한 서브입니다. 무리없이 작동합니다.

그런데 아래 서브는 검색이 안 됩니다.

Private Sub s_ecrit_AfterUpdate()

Dim mySet As Recordset

Dim criteria, rEcrit

Dim Message, Title

Dim scQ, scR

scQ = Chr(34)

scR = Chr(13) & Chr(10)

rEcrit = Trim(Me![s_ecrit])

Set mySet = Me.Recordset

With mySet

.MoveFirst 

criteria = "Ecrit like " & scQ & "*" & rEcrit & "*" & scQ 

.FindFirst criteria 

If .NoMatch Then 

  Message = "찾는 글이 없습니다." 

  Title = "검색 실패!" 

  Msgbox Message

  Exit Sub 

End If 

End With

End Sub

위 서브는 'Ecrit'라는 필드에서 검색하기 위해서 만든 겁니다.

그런데 여기서는 항상 "찾는 글이 없습니다"로 나옵니다.

분명 찾는 단어가 있는 필드가 존재하는 데도 불구하고 말입니다.

두 sub의 유일한 차이는 field이름을 첫 번째에서는 table이름이 포함되어 있고(Ecrits.Nom) 두 번째 서브에서는 table이름이 포함되어 있지 않다(Ecrit)는 것 뿐입니다. 첫 서브에서 테이블 이름을 포함한 것은, 다른 테이블의 동일한 이름의 필드가 Recordset에 있기 때문입니다. 따라서 이 차이가 문제의 원인이 될 것 같지는 않은데요.

즉 두 번째 서브에서 'Ecrit'를 'Ecrits.Ecrit'(Table이름 포함)로 바꾸어도 여전히 문제는 해결되지 않습니다.

혹시 이런 문제에 대해 알고 계시거나, 위 코딩에 문제점을 발견하신 분은 알려주시면 감사하겠습니다.

Microsoft 365 및 Office | Access | 가정용 | Windows

잠긴 질문. 이 질문은 Microsoft 지원 커뮤니티에서 마이그레이션되었습니다. 질문이 도움이 되었는지 여부에 대해 응답할 수는 있지만, 메모나 회신을 추가하거나 질문을 따를 수는 없습니다.

댓글 0개 설명 없음

답변 2개

정렬 기준: 가장 유용함
  1. 익명
    2025-01-29T08:37:20+00:00

    이 응답은 자동으로 번역되었습니다. 따라서 문법 오류 또는 이상한 표현이 있을 수 있습니다.

    친애하는 정M.K_

    좋은 하루! Microsoft Community에 게시해 주셔서 감사합니다. 기꺼이 도와 드리겠습니다

    Access VBA 코드에 대한 쿼리와 관련하여. 이 쿼리는 지원 범위를 벗어난다는 점을 이해해 주시기 바랍니다. 적절한 도움을 받으려면최신 'vba'질문 - Stack Overflow에 문의하십시오. 해당 팀의 전문가가 귀하의 질문을 효과적이고 정확하게 해결할 수 있다고 확신합니다.  

    새 스레드를 게시하도록 요청하는 이유는 답변 포럼에서는 리소스가 제한되어 있고 VBA 코드에 대한 지식이 거의 없으며 최신 'vba' 질문 - Stack Overflow에서는 가장 적합한 응답자 풀을 얻을 수 있으며 포럼을 정기적으로 읽는 다른 파트너는 지식을 공유하거나 상호 작용에서 배울 수 있습니다.

    참조하기 위한 추가 정보 :

    Office VBA 지원 및 피드백 | 마이크로소프트 런

    이 스레드를 열어두고 다른 경험 많은 사용자가 아이디어를 공유하는 것을 환영하겠습니다.

    협조해 주셔서 감사합니다.

    솔직히

    주석 | Microsoft 커뮤니티 중재자

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  2. 삭제됨

    이 답변은 당사의 사용 규정 위반으로 인해 삭제되었습니다. 작업을 수행하기 전에 자동화된 감지를 통해 답변이 수동으로 보고되거나 식별되었습니다. 자세한 내용은 사용 규정 을 참조하세요.


    댓글을 사용하지 않습니다. 자세한 정보