Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 43
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [VB] tipo non corrispondente

    Ciao a tutti
    sto cercando di capire come funziona questo codice che ho trovato sulla rete, fa in modo che come inizio a scrivere dentro una textbox lui cerca il record corrispondete

    codice:
        If Len(TmpStr) = 1 Then S = TmpStr
        Comuni.Find ">=", TmpStr
        If Not Comuni.EOF And Not Comuni.BOF Then
          If UCase(TmpStr) = UCase(Mid(Comuni!COMU_DESCR, 1, Len(TmpStr))) Then
            If Len(TmpStr) > Len(citta.Tag) Then
                citta.Text = Comuni!COMU_DESCR
                citta.SelStart = Len(TmpStr)
                citta.SelLength = Len(citta.Text) - (Len(TmpStr))
                provincia.Text = Comuni!COMU_PROV
                cap.Text = Comuni!cap
            End If
          Else
    ma quando arriva qui (Comuni.Find ">=", TmpStr)

    mi da errore 13 - tipo non corrispondente sapete dirmi che vuol dire??

    grazie mille


  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

  3. #3
    Dubito che senza le dichiarazioni delle variabili o degli oggetti che generano l`errore qualcuno possa sognarsi che razza di errore sia .. :tongue:

    Sii precisa.

    Ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    io vorrei fare una textbox inteligente (ma non ne sono capace)

    quel codice l'ho trovato in rete.

    tu ne hai mai fatta una??



  5. #5
    1) Cosa intendi per "intelligente"?

    2) Non potrai mai sperare di compilare quel codice cosi` come sta.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    intendo una textbox dove ad esempio l'utente digita la prima lettera e lui cerca in un database il primo record corrispondente e cosi via,
    in pratica ti aiuta a scrivere, hai mai visto programma che calcola il codice fiscale, li funziona cosi, e da li che ho preso il codice


  7. #7
    C'è un codice molto più semplice che utilizza un'API.
    Questa é la dichiarazione:
    codice:
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
    Public Const LB_FINDSTRING = &H18F
    e questo é il codice che devi mettere all'evento Change della Textbox:
    codice:
    ListName.ListIndex = SendMessage(ListName.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    Dove ListName é il nome di un'ipotetica lista che contiene tutti i record e text1 é la textbox che contiene il testo ricercato.

    Ciao
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho fatto come hai detto ma ho ricevuto un 'errore

    codice:
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
    Public Const LB_FINDSTRING = &H18F
    
    Private Sub Form_Load()
    
        Data.rscomuni.Open
        While Not Data.rscomuni.EOF
        List1.AddItem (Data.rscomuni.Fields("COMU_DESCR"))
        Data.rscomuni.MoveNext
        Wend
        Data.rscomuni.Close
        
    End Sub
    
    Private Sub Text1_Change()
    List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    End Sub

    in List1 ottengo senza problemi la lista che mi interessa ma l'errore è nella dichiarazione dell'API esattamente qui

    codice:
    Public Const LB_FINDSTRING = &H18F
    guarda
    qui


  9. #9
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    111
    Originariamente inviato da Rossella_75
    ho fatto come hai detto ma ho ricevuto un 'errore

    codice:
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
    Public Const LB_FINDSTRING = &H18F
    
    Private Sub Form_Load()
    
        Data.rscomuni.Open
        While Not Data.rscomuni.EOF
        List1.AddItem (Data.rscomuni.Fields("COMU_DESCR"))
        Data.rscomuni.MoveNext
        Wend
        Data.rscomuni.Close
        
    End Sub
    
    Private Sub Text1_Change()
    List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    End Sub

    in List1 ottengo senza problemi la lista che mi interessa ma l'errore è nella dichiarazione dell'API esattamente qui

    codice:
    Public Const LB_FINDSTRING = &H18F
    guarda
    qui


    metti la costante su di un modulo standard.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Ok adesso funziona, ma io volevo fare in modo che quando l'utente scrive nella textbox il risultato viene scritto non nella list1 ma nella textbox..

    è possibile???

    e grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.