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

    [VB6] Confrontare elemento preso da un record con un elemento Text!

    Ciao ragazzi ho bisogno di un aiuto! ho creato un programma per la gestione di un negozio. funziona tutto alla perfezione, il problema si presenta x quanto riguarda la vendita, vi spiego: io ho 2 DBGrid, 1 che mi fa vedere le disponibilità nel negozio (Codice, Descrizione, Prezzo e Quantità), 1 mi fa vedere gli oggetti venduti (Codice, Descrizione, Prezzo, Quantità e Data). Ho poi una TextCodice che prende in input il codice, una TextQuant che prende in input la quantità venduta (ho dimenticato di dire che il prog non viene usato per ogni oggetto venduto, ma a fine giornata) e il tasto che esegue la vendita, cioè:toglie ALLA PRIMA tabella la quantità scritta nella TextQuant dal record con codice uguale a TextCodice e ALLA SECONDA tabella aggiunge la quantità indicata in TextQuant al record con codice TextCodice se esiste nella SECONDA tabella, altrimenti crea un nuovo record con la quantita TextQuant e codice TextCodice, fin qui tutto a posto...funziona alla perfezione anche quando la quantità nella prima tabella arriva a 0 e cancella quel record da essa!!! Però mettiamo il caso che io ho un prodotto in negozio di cui posseggo 10 pezzi e per sbaglio immetta in TextQuant 15 unità (o 16,30,1000,1000000) cosa succede? che dalla prima tabella scompare quel record(ovviamente) e nella seconda tabella non aggiunge la quantità REALMENTE disponibile in negozio, ma quella che inserisco che è errata! vi prego, ditemi come devo fare a confrontare la quantità del record con codice uguale a TextCodice alla quantità inserita in TextQuant in modo da lanciare un MsgBox in cui segnalare il numero maggiore della disponibilità e far reinserire tale valore! come faccio? è possibile con una select prendere solo il valore della quantità di quel TextCodice e confrontarlo con TextQuant? Io avevo pensato questa soluzione:


    qta1 = "Select Quantità where(codice = " & Chr(34) & TextCodice.Text & Chr(34) & ");"
    qta = TextQuant.Text
    If (qta < qta3) Then
    ...............
    "blocco di istruzioni che esegue la vendita"
    ...............
    Else: MsgBox ("Quantità maggiore della disponibilità!")
    End If
    Che ovviamente non funziona!!!!

    Spero di essere stato chiaro! Se avete domande e non avete chiaro il concetto ditemi cosa non capite e cercherò di spiegare meglio il tutto! ciauZZZZ
    Se ti dicono di alzarti tu siedi, e quando siedono tu alzati in piedi...

  2. #2

    Re: [VB6] Confrontare elemento preso da un record con un elemento Text!

    Cosi' tu semplicemente assegni a qta1 una stringa di testo, non il risultato di una query.
    Invece, per estrarre la Quantità da una tabella di un database contenente un campo denominato Quantità, e supponendo che la tua connessione (aperta) si chiami MyConn e il tuo Recordset si chiami MyRec, la procedura è la seguente:
    codice:
    Set MyRec=MyConn.Execute("SELECT Quantità FROM NomeDellaTabella WHERE Codice LIKE '" & TextCodice.Text & "'")
    qta1=MyRec.Fields("Quantità").Value
    set MyRec=Nothing
    qta = TextQuant.Text
    If (qta < qta1) Then
    'ecc...
    'ecc...
    (presumo che qta3 sia un refuso tipografico e che in realtà intendessi qta1)

    Spero sia utile

    Ciauz

    CHico

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151

    Re: Re: [VB6] Confrontare elemento preso da un record con un elemento Text!

    Originariamente inviato da chico62
    Cosi' tu semplicemente assegni a qta1 una stringa di testo, non il risultato di una query.
    Invece, per estrarre la Quantità da una tabella di un database contenente un campo denominato Quantità, e supponendo che la tua connessione (aperta) si chiami MyConn e il tuo Recordset si chiami MyRec, la procedura è la seguente:
    codice:
    Set MyRec=MyConn.Execute("SELECT Quantità FROM NomeDellaTabella WHERE Codice LIKE '" & TextCodice.Text & "'")
    qta1=MyRec.Fields("Quantità").Value
    set MyRec=Nothing
    qta = TextQuant.Text
    If (qta < qta1) Then
    'ecc...
    'ecc...
    (presumo che qta3 sia un refuso tipografico e che in realtà intendessi qta1)

    Spero sia utile

    Ciauz

    CHico
    In considerazione del fatto, che il codice articolo "dovrebbe" essere univoco, la SELECT non va fatta con il LIKE.
    Premesso che il codice articolo sia una stringa:
    codice:
    Dim codArt as string
    codArt=Replace(txtCodice.text,"'","''")
    Set MyRec=MyConn.Execute("SELECT Quantità FROM NomeDellaTabella WHERE Codice ='" & codArt & "';"
    se invece il codice articolo è un valore numerico:
    codice:
    Dim codArt as long
    ....dopo aver effettuato il controllo che txtcodice sia numerico
    codArt=cLng(codArt)
    Set MyRec=MyConn.Execute("SELECT Quantità FROM NomeDellaTabella WHERE Codice =" & codArt & ";"
    Jupy

  4. #4
    A mio avviso nel caso specifico l'uso di LIKE o = è equivalente, trattandosi di stringa di testo.

    Ciauz

    Chico

  5. #5
    Ragazzi premettendo ke siete stati gentilissimi a rispondere, ho alcune domande da farvi dato ke è da poco ke uso visual basic!


    Domanda1: Cosa vuol dire che la mia connessione deve essere aperta? io uso un oggetto di tipo Data, chiamato Data1 per usare il database fatto in access! è quella la MyConn di cui parla Jupy64? Oppure devo aprire questa connessione? in questo caso, come si fa?


    Domanda2: Simile alla prima...cos'è un recordset? devo impostarlo? il mio recordset in questo caso è Data1? Oppure per piacere ditemi come crearlo, dove vedere qual'è questo recordset...

    vi prego aiutatemi, sto uscendo pazzo!!! Grazie mille!

    P.S.:Il codice è alfanumerico, quindi va bene lo stesso perchè comunque in ogni caso sarebbe una stringa. Grazie.
    Se ti dicono di alzarti tu siedi, e quando siedono tu alzati in piedi...

  6. #6
    ALLORAAAAAAAAAA???? Nessuno sa risolvermi questo problema? Dai!!! Mi serve assolutamente risolvere! Risponedete alle mie domande di sopra!!! e se c'è un metodo per risolvere il problema sapendo, ora, che uso un DBAccess e non un DB fatto il mySQL, ditemeloooooooooo!!!! Vi pregoooooooooooo!!! GRAZIE!
    Se ti dicono di alzarti tu siedi, e quando siedono tu alzati in piedi...

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da helpdesk85
    ALLORAAAAAAAAAA????
    VVoVe:

    Calma ... porta pazienza ... qui nessuno e' obbligato a rispondere e tanto meno nel tempo che vuoi tu ...

    E se nessuno ha ancora risolto il tuo problema, forse, e' perche' non si e' ancora capito il tuo problema ...

  8. #8
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da helpdesk85
    Domanda1: Cosa vuol dire che la mia connessione deve essere aperta? io uso un oggetto di tipo Data, chiamato Data1 per usare il database fatto in access! è quella la MyConn di cui parla Jupy64? Oppure devo aprire questa connessione? in questo caso, come si fa?

    Domanda2: Simile alla prima...cos'è un recordset? devo impostarlo? il mio recordset in questo caso è Data1? Oppure per piacere ditemi come crearlo, dove vedere qual'è questo recordset...
    Visto le tue domande, da cui si evince il fatto che sei proprio a digiuno di come gestire database con vb, e considerato il fatto che non sono domande a cui si può dare una risposta esaustiva in questo forum, forse è il caso che ti prendi un manuale inerente questo argomento (gestione database). Con questo non è che non ti si vuole aiutare, ma non avrebbe senso postarti del codice di esempio senza sapere cosa si sta usando e quali sono le funzioni di determinati oggetti..
    Jupy

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.