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

    [VB6] Problema con un If dopo stringa SQL

    prima vi invio il mio codice, scusate è molto contorto, ma anche se pare strano ragiono meglio con variabili dello stesso nome

    codice:
    Private Sub cmdNewMag_Click()
    Dim Barre As String
    Dim StringaSQL As String
    Barre = InputBox("Inserire Codice a Barre", "Inserimento Codice a Barre")
    Data1 = App.Path & "/DB.mdb"
    
    StringaSQL = "SELECT " + "Barre" + " FROM Magazzino"
    StringaSQL = StringaSQL + " WHERE " + "Barre"
    StringaSQL = StringaSQL + " = '" + Barre + "'"
    StringaSQL = StringaSQL + "ORDER BY " + "Barre"
    
    Data1.RecordSource = StringaSQL
    Data1.Refresh
    
    If Data1.Recordset.RecordCount > 0 Then
        Data1.Recordset.MoveFirst
    Do While Data1.Recordset.EOF
    Loop
        If lblCerca.Caption = Barre Then
            MsgBox "OK"
        Else
            MsgBox "Assente"
        End If
    End If
    End Sub
    il problema persiste nel seguente punto :
    codice:
        If lblCerca.Caption = Barre Then
            MsgBox "OK"
        Else
            MsgBox "Assente"
        End If
    praticamente se il codice a barre viene ritrovato nella lista allora risponde semplicemente con un del MsgBox "OK" in caso contrario non dice nulla, voi mi direte che ti frega tanto non è nel DB ma a me interessa xkè se il Codice a barre è presente dovrà essere modificato ( ovviamente inserirò il codice successivamente come avrete intuito ) se non esiste è un nuovo record ma se non rileva la NON presenza del record stesso direi che il programma in se mi dice

    credo di essermi spiegato

    TNX Anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    La clausola Order by è attaccata alla parola precedente, com'è che non ti segnala l'errore? Che database usi?
    Inoltre spiegami a che serve il Do While se non c'è nulla dentro
    codice:
    Do While Data1.Recordset.EOF
    Loop
    ...e dove viene valorizzato lblCerca.

    CIAO
    Ciao
    Marco

  3. #3
    hai perfettamente ragione, ma è che lo ho modificato tante di quelle volte il programma che non guardavo cosa c'era scritto, e cmq l'order by l'ho messo tanto per inserire qualcosa
    Il DB cehe uso lo ho creato con Visual Fox Pro e il DB è Ms Access normalissimo. letto con JEt 3.41

  4. #4
    Come dovrebbe essere:
    codice:
    If Data1.Recordset.RecordCount > 0 Then
        Data1.Recordset.MoveFirst
        If lblCerca.Caption = Data1.Recordset("Barre") Then
            MsgBox "OK"
        Else
            MsgBox "Assente"
        End If
    End Sub
    *** Rachele TI AMO DA MORIRE!!! ***

  5. #5
    Originariamente inviato da Dardino
    Come dovrebbe essere:
    codice:
    If Data1.Recordset.RecordCount > 0 Then
        Data1.Recordset.MoveFirst
        If lblCerca.Caption = Data1.Recordset("Barre") Then
            MsgBox "OK"
        Else
            MsgBox "Assente"
        End If
    End Sub
    Per logica è corretto, ma non capisco xkè cmq non funge. Ho provato ad invertire la stringa if con

    codice:
    If lblcerca.caption <> Data1.Recordset("Barre") then
        MsgBox "Assente"
    Else
        MsgBox "OK"
    End If
    e mi da lo stesso un bel vuoto nel caso in cui manca il codice a barre.

  6. #6
    facendo il debug passo passo cosa scopri?
    *** Rachele TI AMO DA MORIRE!!! ***

  7. #7
    Dardino ho scoperto che sono un imbecille!!!!

    codice:
    If Data1.Recordset.RecordCount > 0 Then
        Data1.Recordset.MoveFirst
    Do While Data1.Recordset.EOF
    Loop
        If lblCerca.Caption = Barre Then
            MsgBox "OK"
        Else
            MsgBox "Assente"
        End If
    End If
    quell'If iniziale ( Data1.Recordset.RecordCount > 0 Then )chiude dopo il lblCerca e ovviamente non legge la istruzione successiva... penso sempre troppo come un umano e non come una macchina
    Amen l'importante è che abbia risolto

    TNX lo stesso

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.