In een tekstvak een zin met een hoofdletter laten beginnen

Status
Niet open voor verdere reacties.
Dan moet je in de query die je doorgeeft via VBA maar gewoon het veld Aant Let gebruiken.

Code:
Private Sub fltrCryptogrammen_Change()
Dim sFltr As String
    sFltr = Me.fltrcryptogrammen.Text
    strSQL = "SELECT Omschrijving, Woord, [Aant Let], Datum, Tijd FROM Cryptogrammen " _
        & "WHERE (Omschrijving Like """ & Me.fltrcryptogrammen.Text & "*"");"
    
    With Me
        .lstOmschrijving.RowSource = strSQL
        .lstOmschrijving.Requery
    End With
    Me.fltrcryptogrammen.SelStart = Len(sFltr)
        
End Sub

Gezien het veld uit 2 woorden bestaat (wat ik eigenlijk afraad) moet dit tussen vierkante haakjes staan.
Misschien zou het voor jou ook eenvoudiger zijn om eerst een query te maken die geeft wat je wil, en vervolgens die query in je programmacode te gebruiken. Dat is vaak makkelijker dan die SQL code te ontcijferen.
 
Kun je de meest recente versie van de db posten? Bij mij doet je formulier het niet goed.
 
Ik zal het even zelf posten. Ik had er immers alle aanpassingen al ingezet.
 

Bijlagen

  • Cryptogrammen test.zip
    61,9 KB · Weergaven: 10
Beste,

Het werkt prima alleen bij Crypto woorden zoeken werkt het niet.
Ik zal de laatste database erbij doen en een foto.
Ik ben blij met jullie hulp

Vriendelijk dank
 

Bijlagen

  • 5.png
    5.png
    128,2 KB · Weergaven: 24
  • Cryptogrammen test.zip
    61,9 KB · Weergaven: 9
Beste,

Heb het voor elkaar gekregen dat de Crypto woorden zoeken nu ook juist werkt.
Ik wil u beide bedanken voor u moeite en tijd die u er in hebt gestoken om mij te helpen dank hiervoor alleen had ik er niet uitgekomen.

Vriendelijke Groet Klaas.
 
Ik heb nog een versie gemaakt die óók een tabel vult met woorden die je altijd in hoofdletters wilt hebben. Dus je typt een zin met een of meer hoofdletters in een woord, en het formulier slaat die woorden automatisch op in een tabel en zorgt ervoor dat je ze daarna altijd correct in het document krijgt. Wellicht heb je er nog wat aan :).
 

Bijlagen

  • Cryptogrammen test.zip
    50 KB · Weergaven: 12
Octafish,

ik ga het proberen nog bedankt

Vriendelijke groet Klaas
 
Ik heb de routine nog een beetje aangepast; nu vervangt hij woorden die met een hoofdletter zouden moeten, maar die je met een kleine letter schrijft, alsnog door een hoofdletter.

Code:
Private Sub Omschrijving_AfterUpdate()
Dim i As Integer, sTmp As String, sWoord As String
Dim tmp As Variant, rs As DAO.Recordset

    tmp = Split(Me.Omschrijving, " ")
    If LBound(tmp) < UBound(tmp) Then
        For i = LBound(tmp) To UBound(tmp)
            If i = LBound(tmp) Then
                sTmp = StrConv(tmp(i), vbProperCase) & " "
            Else
                Select Case Right(tmp(i), 1)
                    Case ".", ",", "!", "?"
                        sWoord = StrConv(Left(tmp(i), Len(tmp(i)) - 1), vbProperCase)
                    Case Else
                        sWoord = StrConv(tmp(i), vbProperCase)
                End Select
                Set rs = CurrentDb.OpenRecordset("Select WoordID, Uitzondering FROM tUitzonderingen WHERE Uitzondering = """ & sWoord & """")
                If rs.RecordCount = 0 Then
                    If Left(tmp(i), 1) = UCase(Left(tmp(i), 1)) Then
                        Dim result, msg As String, CR As String, strSQL As String
                        CR = Chr$(13)
                        msg = "'" & sWoord & "' staat niet in de uitzonderingenlijst." & CR & CR & "Wil je '" & sWoord & "' toevoegen?"
                        If MsgBox(msg, vbQuestion + vbYesNo) = vbYes Then
                            CurrentDb.Execute ("Insert Into tUitzonderingen (Uitzondering) Values(""" & sWoord & """)")
                        End If
                        result = DLookup("[WoordID]", "tUitzonderingen ", "[Uitzondering]=""" & tmp(i) & """")
                        If IsNull(result) Then
                            Response = acDataErrContinue
                            sTmp = sTmp & LCase(tmp(i)) & IIf(i < UBound(tmp), " ", "")
                        Else
                            ' Als het woord is gemaakt, het Response argument Added zetten.
                            Response = acDataErrAdded
                            sTmp = sTmp & StrConv(tmp(i), vbProperCase) & IIf(i < UBound(tmp), " ", "")
                        End If
                    Else
                        sTmp = sTmp & LCase(tmp(i)) & IIf(i < UBound(tmp), " ", "")
                    End If
                Else
                    sTmp = sTmp & rs!Uitzondering & IIf(i < UBound(tmp), " ", "")
                End If
            End If
        Next i
    Else
        sTmp = StrConv(Me.Omschrijving, vbProperCase)
    End If
    Me.Omschrijving = sTmp
    If Me.Dirty Then Me.Dirty = False
    
End Sub
Kijk maar of je er wat mee kan.
 
Beste Octafish

Dank u voor het vele werk, ik ga het proberen.

Vriendelijke groet Klaas.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan