Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8

    Sintassi corretta???

    Sono sempre io lo scarso....

    Mi sapete indicare la sintassi giusta????

    If Len(rsTipo.Fields("cmbCliente(I).Tag")) > 0 Then
    '''
    end if


    come gli devo passare il tag del campo cmbCliente???


    e se gli passo :

    campo=cmbCliente(I).Tag
    If Len(rsTipo.Fields(campo)) > 0 Then

    mi dice che non trova 'campo'.....????
    Mi sapete aiutare??

  2. #2
    Ma che versione di VB è? Cos'è rsTipo? Cos'è cmbCliente?
    Se si tratta (come credo) di VB6 e cmbCliente è un array di combobox allora:
    codice:
    If Len(rsTipo.Fields(cmbCliente(I).Tag)) > 0 Then
    (come speravi che funzionasse con le virgolette? Le virgolette delimitano del testo, il loro contenuto non viene valutato!).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    Questo è tutto il codice:

    Dim cnTIPO As New ADODB.Connection
    Dim sqlTipo As String

    For I = 0 To cmbCliente.Count - 1
    Set rsTipo = New ADODB.Recordset

    sqlTipo = "SELECT distinct '" & cmbCliente(I).Tag & "' FROM cliente"
    Call carica_database(cnTIPO, rsTipo, sqlTipo, "db.mdb")

    Do While Not rsTipo.EOF Or rsTipo.BOF
    If Len(rsTipo.Fields(cmbCliente(I).Tag)) > 0 Then ' ----- l'errore è qui!!! -----
    cmbCliente(0).AddItem UCase(rsTipo.Fields(cmbCLIENTE(I).tag)
    End If
    rsTipo.MoveNext

    Loop
    rsTipo.Close
    Next I



    N.B cmbCliente è un serie di combobox
    IL problema è che non riconosce il campo infatti mi dice:"Impossibile trovare l'oggetto nell'insieme corrispondente...."
    Aiutami ! Grazie 1K per ora!
    :master:

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dovresti controllare il valore di

    cmbCliente(I).Tag

    quando il programma si ferma ...

    Usa la finestra di debug ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    il valore è corretto!
    mi dice il nome del campo!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Hai controllato in debug tutti i valori della proprieta' Tag di tutti i combo al variare di I ?

    L'errore che hai indicato si riferisce al fatto che quello che viene indicato come nome di campo, non esiste ... quindi ...

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Originariamente inviato da micolla
    Mi sapete indicare la sintassi giusta????
    Indica il linguaggio nel titolo, e usa una descrizione sintetica che sia significativa.

    Ho corretto io il titolo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    ops... scusa ALKA!!

    Mi spiego meglio:

    COMBO = cmbCliente(I).Tag
    MsgBox COMBO
    cmbCliente(I).AddItem rsTipo.Fields(COMBO) ' ----- l'errore è qui!!! -----

    In questo codice ho messo 'msgbox combo' per verificare che il tag sia corretto; infatto il msgbox mi restituisce a video -- tipo -- cioe il tag corretto.
    Nella riga successiva mi fa intendere che non trova il campo -- combo -- quindi deduco che la sintassi -- rstipo.fields(COMBO) --- sia sbagliata .
    mi dice sempre:"Impossibile trovare l'oggetto nell'insieme corrispondente...."
    Nel db il campo --tipo-- esiste!!!

    Aiutatemi questo piccolo codice mi fa risparmiare moltissime righe di codice!! funzionasse!!!!!!

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... se i da' quell'errore allora il campo tipo non esiste nel recordset ottenuto ...

    Attento ... non nel db ma nel recordset ...

    Esegui il programma in debug e fermati poco prima dell'errore.

    A quel punto scrivi tutti i nomi dei campi in debug, ad esempio con

    Print rsTipo.Fields(0).Name

    Print rsTipo.Fields(1).Name

    e cosi' via per i campi che dovrebbero stare nel recordset ...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    Tenendo presente il codice di prima potrei modificare la sintassi in questa maniera:

    If rsTipo!COMBO <> "" Then

    L'errore è uguale! come la correggo???

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 © 2025 vBulletin Solutions, Inc. All rights reserved.