View Full Version : [vb6] Nuovo Problema...help!
RaouL_BennetH
11-12-2004, 16:51
Allora, mi trovo davanti ad un problema che non riesco a "pensare" più che scrivere a livello di codice :(
Il problema è questo:
In un form, ho un combo dove vengono caricati dei dati da un campo di una tabella di un db....e fin qui, tutto ok.
Ora, diciamo che io nel mio combo ho questi dati:
1234
5678
4545
3434
Vorrei poter fare in modo che, quando scelgo il codice 1234, e ad un evento di scrittura sul db, quel codice, poi, non sia più disponibile all'interno della combobox, ma mi rimangano solo gli altri "disponibili".
Per favore, me lo date un aiutino?
Thx.
RaouL.
Fenomeno85
11-12-2004, 18:56
semplicemente quando vuoi elimare l'elemento fai:
Combo1.RemoveItem(index)
~§~ Sempre E Solo Lei ~§~
RaouL_BennetH
11-12-2004, 19:35
Originariamente inviato da Fenomeno85
semplicemente quando vuoi elimare l'elemento fai:
Combo1.RemoveItem(index)
~§~ Sempre E Solo Lei ~§~
Prima cosa, graxie :)
Secondo, funziona, ma mi elimina l'ultima voce della lista, non quella che ho scelto. Ci rimugino un pò sperando di risolvere.
Thx.
RaouL_BennetH
11-12-2004, 20:38
ok, ho risolto così:
Dim i As Integer
'altro codice
'dopo aver fatto ciò che mi serve faccio:
i = Val(Combo1.Text)
Combo1.RemoveItem (i)
In programmazione, quando si "converte" una stringa in un intero(o viceversa), si chiama casting, giusto?
RaouL_BennetH
11-12-2004, 20:40
Damn!! ho parlato troppo presto :(
Così mi rimuove non quello che è selezionato nella combo, ma mi rimuove sempre la prima voce :muro:
RaouL_BennetH
11-12-2004, 22:43
Inoltre (ma mi sa che qui è proprio un errore di progettazione), se anche riesco ad eliminare un codice dalla lista della combo, quel codice comunque, al ricaricarsi del form è presente.
Inizialmente avevo pensato di eliminarlo anche dal db, ma non mi sembra una buona idea.
In sostanza, il mio obiettivo sarebbe di fare in modo che una volta che ho scelto un codice dalla lista, quel codice non sia più disponibile per altri nominativi, ma rimanga comunque nella tabella del db corrispondente ai codici disponibili.
:muro:
e doppio :mc:
RaouL_BennetH
11-12-2004, 23:27
mmm... per rimuoverli dalla combo mi bastava:
combo1.RemoveItem Combo1.ListIndex
e, almeno questo, funziona.
Ma come faccio a "marcare" i codici che uso in modo che poi, al successivo riavvio del programma, non siano più disponibili?
RaouL_BennetH
11-12-2004, 23:48
e poi..... perchè non mi esegue questa sql???
isql = ""
isql = isql & "DELETE FROM tblCode " & vbCrLf
isql = isql & "WHERE Codice = (' " & cbScheda.Text & " ') " & vbCrLf
Set rs = cn.Execute(isql)
Prova così:
isql = ""
isql = isql & "DELETE * FROM tblCode " & vbCrLf
isql = isql & "WHERE Codice = '" & cbScheda.Text & "'" & vbCrLf
Set rs = cn.Execute(isql
Originariamente inviato da RaouL_BennetH
mmm... per rimuoverli dalla combo mi bastava:
combo1.RemoveItem Combo1.ListIndex
e, almeno questo, funziona.
Ma come faccio a "marcare" i codici che uso in modo che poi, al successivo riavvio del programma, non siano più disponibili?
Bhe tu metti un campo check nel database e attivalo quando si seleziona il codice no?
RaouL_BennetH
13-12-2004, 12:31
Originariamente inviato da matpez
Bhe tu metti un campo check nel database e attivalo quando si seleziona il codice no?
Matpez, prima cosa, grazie della risposta e dell'attenzione :)
Seconda cosa:
Mi consigli di mettere un campo 'check' nel database, ma, se è una cosa da fare sul db direttamenet da access, non so mica come farla :(
Come tipo dati, a me il campo 'codice' nella struttura della tabella è impostato come campo testo. Scorrendo la lista delle opzioni, cosa dovrei scegliere?
thx.
disumano
13-12-2004, 16:43
il campo check che devi mettere è un campo qualsiasi che valorizzerai a seconda se il codice deve essere visibile o no.
se aggiungi un campo numerico alla tabella, ad es., il suo valore sarà 0 se il campo deve risultare visibile in combo e 1 se il campo deve risultare invisibile.
quando vai a caricare i dati nella combo aggiungi semplicemente un if che controlla il valore del campo check e condiziona l'aggiunta del valore in combo.
il campo codice resta così com'è.
RaouL_BennetH
13-12-2004, 18:03
Originariamente inviato da disumano
il campo check che devi mettere è un campo qualsiasi che valorizzerai a seconda se il codice deve essere visibile o no.
se aggiungi un campo numerico alla tabella, ad es., il suo valore sarà 0 se il campo deve risultare visibile in combo e 1 se il campo deve risultare invisibile.
quando vai a caricare i dati nella combo aggiungi semplicemente un if che controlla il valore del campo check e condiziona l'aggiunta del valore in combo.
il campo codice resta così com'è.
Grazie mille disumano :) Meno male che hai solo il nick che evoca pensieri mostruosi :D Al contrario invece della cortesia :)
Thx!!!!
RaouL_BennetH
13-12-2004, 20:33
allora, ho aggiunto un campo "verificaCodice" di tipo booleano nella tabella "tblCode".
Ora, in questa tabella, sono presenti solo i codici che vengono memorizzati per essere disponibili.
Questi codici, vengono caricati mediante un command button, in un form dove vengo inseriti invece i dati anagrafici e, precisamente, nella combobox di cui sopra.
Ora, dato che si tratta di due tabelle diverse, non riesco ad immaginare un modo "via codice", di dire che :
Quando ho scelto un codice disponibile dalla tblCode, in questa tabella, marcamelo come "False", ovvero, non più disponibile dato che, nella query che ho fatto, ho scelto di far caricare tutti i codici che hanno come valore predefinito "true":
Private Sub cmdLoad_Click()
isql = ""
isql = isql & "SELECT Codice " & vbCrLf
isql = isql & "FROM tblCode " & vbCrLf
isql = isql & "WHERE verificaCodice = true" & vbCrLf 'nuova riga
isql = isql & "ORDER BY Codice " & vbCrLf
Set rs = cn.Execute(isql)
RaouL_BennetH
13-12-2004, 20:54
Originariamente inviato da RaouL_BennetH
allora, ho aggiunto un campo "verificaCodice" di tipo booleano nella tabella "tblCode".
Ora, in questa tabella, sono presenti solo i codici che vengono memorizzati per essere disponibili.
Questi codici, vengono caricati mediante un command button, in un form dove vengo inseriti invece i dati anagrafici e, precisamente, nella combobox di cui sopra.
Ora, dato che si tratta di due tabelle diverse, non riesco ad immaginare un modo "via codice", di dire che :
Quando ho scelto un codice disponibile dalla tblCode, in questa tabella, marcamelo come "False", ovvero, non più disponibile dato che, nella query che ho fatto, ho scelto di far caricare tutti i codici che hanno come valore predefinito "true":
Private Sub cmdLoad_Click()
isql = ""
isql = isql & "SELECT Codice " & vbCrLf
isql = isql & "FROM tblCode " & vbCrLf
isql = isql & "WHERE verificaCodice = true" & vbCrLf 'nuova riga
isql = isql & "ORDER BY Codice " & vbCrLf
Set rs = cn.Execute(isql)
OK!!! OK!!!
Mi bastava leggere un attimo la clausola "UPDATE" :D
Funziona!! Grazie :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.