Newsgroup: it.comp.lang.visual-basic
Titolo: record

Ringrazio già da ora chi mi risponde.
Devo fare un programma per una scuola, come sotto vedete c'è parte del
codice, tutto funzionante tranne per una cosa.
Il secondo if l'ho messo per evitare di aggiungere un record che
esiste, ma non funziona il record viene inserito lo stesso, come
faccio a sistemare il codice ?
Dove è il problema ?
Private Sub Aggiungi_Click()
Dim d As Database
Dim t As Recordset
Set d = OpenDatabase("C:\Documents and
Settings\Alex\Desktop\Programma\Db.mdb")
Set t = d.OpenRecordset("dati")
If nome = "" Or cognome = "" Or indirizzo = "" Or nciv = "" Or
telefono = "" Then
MsgBox ("Una o più caselle è vuota")
End If
If t![nome] = anno And t![cognome] = cognome And t![indirizzo] =
indirizzo And t![nciv] = nciv And t![telefono] = telefono And t![anno]
= anno And t![classe] = classe And t![sezione] = sezione Then
MsgBox ("Attenzione! lo studente cercato è già presente")
Else
t.AddNew
t![nome] = nome
t![cognome] = cognome
t![indirizzo] = indirizzo
t![nciv] = nciv
t![telefono] = telefono
t![anno] = anno
t![classe] = classe
t![sezione] = sezione
t.Update
End If
End Sub

 cosa.
cut
è un metodo folle quello che hai adottato!!!!!!!!!
anche se fosse corretto...e NON lo è....
è fortemente instabile!
Basta che tu dimentichi qualcosa o non scriva qualcosa e l'AND fallisce
ad es.
IF miorec!Nome=nome
ma sei sicuro che siano uguali???? spazi che non vedi al limite compresi?
CONCETTUALMENTE COME SI FA?
fatti una query sql e controlla se c'è già....
nello specifico...
Sol a ) ti fai una fiunzione che esegue una query e controlli che
ritorna...se ritorna un recordset vuoto ...non c'è!
Sol b) Guarda il metodo FindFirst
ciao!
p.s.
Le query le sai fare vero?
SELECT * FROM MioArchivio WHERE Nome='pippo' AND Cognome = 'DePippis'
.....roba del genere non è arabo per te no???
:-) Bye man!
-- 
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel
bestiario! :-)
---
Messaggio scannerizzato e certificato "Virus free" da AVG free edition.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.775 / Virus Database: 522 - Release Date: 08/10/2004

If t![nome] = anno And t![cognome] = cognome And t![indirizzo] =
Perchè confronti t![nome] con anno?
Ciao!

 
In questo punto hai in linea il primo record del recordset che hai
aperto poco
sopra, per cui il test che tu fai non potrà mai tornarti True (lo farà
solo nel caso in cui tu tenti di reinserire uno studente con gli
stessi dati del primo che si trova nel tuo recordset!)
Devi verificare che il tuo studente non esista già utilizzando uno
statement SQL, come ti è già suggerito (anche se in modo piuttosto
scortese!)
Esempio: 
Dim SQL As String
SQL = "SELECT * FROM Dati WHERE Nome = '" & nome & "' "
SQL = SQL & " AND Cognome = '" & cognome & "' "
ecc. ecc.
Fatto questo apri il recordset:
Set t = d.OpenRecordset(SQL)
If t.RecordCount = 0 Then    ' lo studente non c'è
Se ti rimane qualche dubbio scrivimi pure.
Ciao.


 scortese!)
azz sto NG sta vedendo la mandata di maestri di bonton (bombon che dir si
voglia)
propongo di modificare il nome
it.comp.lang.modicarini.visual-basic
Definire folle il metodo era tutto fuorchè scortese!
La risposta l'ha avuta...imho anche molto pertinente!
Infatti ha avuto 2 soluzioni
Una generale che persegui anche tu
Una particolare che ho consigliato solo io...
Se osservi il suo codice noti che usa DAO e non ADO...
guarda caso esiste un bel metodo findfirst che sembra fatto apposta per lui
!
credimi se volevo essere scortese potevo dire di usare la zappa invece della
tastiera...
...e cmq....
Benvenuti nel mondo reale ragazzi....un po ruvido dove ogni tanto ci si
spella !
Se il ragazzo andrà avanti troverà gente che non si metterà i guanti bianchi
o aprirà il "Dizionario dei fiori e fioretti" per parlare con lui.
Nota bene...
Ruvido è una cosa ...maleducato un altra!
Definire folle il metodo usato non è essere maleducati!...è un approccio
assurdo quello di tutte quelle if...dettato imho dalla "giovinezza"
dell'autore!
E' bene correggere subito questi errori concettuali...anche perchè dubito
che il suo insegnante davanti ad un codice come quello sarebbe stato
piacevolmente sorpreso!.
Va anche detto che molti insegnanti se ne fregano e che il nostro amico è
facile ne sappia molto di più del suo professore!
Bye man!
--
 [ Un wodkino con lo sguardo pallato perchè Giulia piange e non riesce a
dormire!!! ]
