Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB] Db: Field esistente

    In che modo posso sapere se un field di un databse esiste oppure no?
    Avrei bisogno di inviarlo via Winsock se esiste e di mandare una stringa vuota se non esiste.
    Se però non esiste si genera l'errore 3265 e non posso continuare.
    E' inutile provare con "On Error Resume Next", perché il codice è questo:

    While Not IsNull(myRS.Fields(XXXXX).Value)
    Lett = myRS.Fields(XXXXX).Value
    Connessione(Index).SendData Lett & vbCrLf
    myRS.MoveNext
    Wend

    Con il "Resume Next" in caso di errore il ciclo diventa infinito.



    Set myDB = OpenDatabase(App.Path & "\App.mdb")
    Set myTB = myDB.TableDefs(0)
    Set myRS = myDB.OpenRecordset(myTB.Name)
    myRS.Fields(XXXXX).Value '<--- Questo Field ESISTE O NO???

    Vi ringrazio tutti...
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  2. #2
    Berè, non ti basta fare un
    if notisnull rs.fields(XXX) then
    ....
    end if

    ???

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    No, non basta...
    VB appena esegue il "Fields(XXXXX)" fa errore...
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  4. #4
    Da quello che vedo fai un ciclo da cui il programma esce solo quando trova un campo nullo. Ma con la 'resume next' ti viene annullata tale condizione, per uscire dovresti controllare anche che il puntatore dei record non sia posizionato alla fine (EOF).
    Quindi:


    While Not IsNull(myRS.Fields(XXXXX).Value) And not myRS.EOF
    Lett = myRS.Fields(XXXXX).Value
    Connessione(Index).SendData Lett & vbCrLf
    myRS.MoveNext
    Wend


    oppure come diceva ladyblu:

    While not myRS.EOF
    If notisnull rs.fields(XXX) then
    Lett = myRS.Fields(XXXXX).Value
    Connessione(Index).SendData Lett & vbCrLf
    End If
    myRS.MoveNext
    Wend


    Spero sia corretto... fammi sapere!
    Ciao!!
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  5. #5
    Ho già provato, ma quando la colonna (o il field) non esiste prima di provare a vedere se è "null" non lo trova, quindi fa errore!!!

    Come faccio?
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  6. #6
    invece di on error resume next

    utilizza on error goto ETICCHETTA

    ETICHETTA:

    ora puoi gestire l'errore.

    ciao

  7. #7
    Ma non esiste una funzione che dice se esiste o no?
    Comunque grazie, ora ho risolto.
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    271
    Se ho capito bene, prova cosi'
    While not myRS.EOF
    If "" & rs.fields(XXX) <> "" then
    Lett = myRS.Fields(XXXXX).Value
    Connessione(Index).SendData Lett & vbCrLf
    End If
    myRS.MoveNext
    Wend

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.