problema strano con procedura di controllo da database, di dati immessi in un form asp

Toscano

Utente Attivo
27 Apr 2012
31
0
0
Firenze
Ciao a tutti.
Circa un anno fa ho utilizzato il forum per costruire un'app gratuita per la mia scuola che permette di prenotare i colloqui con gli insegnanti online.
La cosa funziona ed è stata molto gradita dagli utenti.
Quest'anno ho fatto alcune modifiche che avrebbero dovuto migliorare il servizio offerto ma, è una settimana che batto la testa su un problema a cui non trovo soluzione.

Per prenotare ho un file asp per ogni classe. Questo visualizza un elenco di studenti - che l'utente sceglie con menù a tendina.
All'utente poi si richiede di inserire un codice numerico che corrisponde alla matricola studente.
Il cognome lo vede e lo sceglie mentre il codice lo digita.

Voreri impostare un controllo tra questi due dati e quelli presenti nella scheda classe sul dbase.

Il controllo lo faccio così:
Codice:
if b = ""  or MID((b),1,1) = " " then 
Response.Write"Inserire la Matricola  "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
Dim strDB
strDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/sede.mdb")
 
Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open strDB

Dim rs1
Set rs1 = Server.CreateObject("ADODB.Recordset")

' Confronto dato inserito con quello presente nel db


strSQL="SELECT IDElencoIndirizzi FROM [1D] WHERE StrComp([Cognome],'" & [a] &  "', 0) = 0  AND StrComp([Matricola],'" & [b] &  "', 0) = 0"
rs1.Open strSQL,cn

if rs1.eof then 
rs1.close
set rs1 = nothing
set cn = nothing
Response.Write "Il dato inserito non e' presente nel nostro Database" 
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if

Il dbase ha una tabella per ogni classe con i campi Cognome e Matricola, una tabella Nome insegnante con i nomi di tutti i docenti, una tabella Contatti dove vengono scritti i record per gli appuntamenti con i campi Cognome, Matricola, Email, Telefono e Nome insegnante


Ora, la costa strana è che le tabelle sono uguali, e per una classe tutto funziona alla perfezione mentre per le altre no!
Specifico che i files (2) ad es 1C.asp (con i form che vede l'utente) e S1C. asp (che è quella che spedisce) li ho creati tutti a partire da quelli che funzionano andando solo a sostituire la lettera della classe.
E' un mistero perché nella classe che funziona se metto la matricola giusta scrivo sul dbase il record e viceversa mentre nelle altre classi la matricola non viene mai riconosciuta come giusta.

Secondo me è un problema di database
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
549
13
18
Italy
www.riciclarte.info
...davvero inspiegabile, l'unico dettaglio è questo:
Codice:
strSQL="SELECT IDElencoIndirizzi FROM [1D] WHERE StrComp([Matricola],'" & [b] &  "', 0) = 0"
se nella query tolgo il controllo del cognome (a) il tutto funziona.
Perchè???? ci impazzisco ancora un po domani...
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
549
13
18
Italy
www.riciclarte.info
...senti Toscano,
ho utilizzato dal menu Strumenti >> Utilità DataBase >> Compatta e ripristina Database
...come per magia funziona, effettivamente il problema era nel DB.

Bho! misteri miscrosoft...
 

Toscano

Utente Attivo
27 Apr 2012
31
0
0
Firenze
Grazie 1000 Paolo,
anch'io però avevo provato a fare l'operazione che hai consigliato sul d base ma a me non ha dato lo stesso risultato.
Ho provato con access 2000

Boh....??
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
549
13
18
Italy
www.riciclarte.info
Grazie 1000 Paolo,
anch'io però avevo provato a fare l'operazione che hai consigliato sul d base ma a me non ha dato lo stesso risultato.
Ho provato con access 2000

Boh....??
..uso Access 2003.
Prima di questa operazione, ho modificato un cognome.
Non so se la modifica del cognome o il controllo del DB, sta di fatto che ora mi funziona.

...non so spiegarti come ma la query non leggeva la colonna 'cognome'.

Paolo