Modifica e cancellazione dati da MDB

redmilion

Nuovo Utente
16 Feb 2005
29
0
0
Ciao,
come ho scritto nel titolo ho un problema con la mia interfaccia per la modifica, e la cancellazione di alcuni dati inseriti nel mio database.
Il database in questione è composta da varie tabelle, ma quella che mi interessa in questo caso si chiama T_Users ed è la tabella con i dati degli utenti iscritti.
Questa tabella è composta dai campi IDUser, Nome, Cognome, Indirizzo, Cap, Citta, Provincia, Nazione, partitaiva, codicefiscale, Email, Telefono, Cellulare, Username e Password.
Nell'area di amministrazione ho fatto una pagina editUtenti.asp nella quale visualizzo i dati inseriti dai vari utenti; io dovrei poterli modificare salvandoli poi sul database o cancellare l'utente, ma quando clicco sui rispettivi bottoni mi viene restituito un messaggio di errore... per esempio modificando un dato e poi cercando di salvarlo ho il seguente errore:

Microsoft JET Database Engine error '80040e14'

Errore di sintassi nella proposizione FROM.

/admin/editUtenti.asp, line 24

Ho provato a fare delle modifiche ma non sono in grado e cambia solo l'errore.
Purtroppo questa pagina la sto adattando da una che gestisce un'altra tabella ed ho paura che quello non sia l'unico errore nel codice della pagina.
Qualcuno può darmi una mano? Qui sotto posto il codice della pagina.

HTML:
<%@LANGUAGE="VBSCRIPT"%>
<% option explicit %>
<% Session.LCID = 1040 %>
<!-- #include file="inc/variabili.asp" -->
<!-- #include file="inc/checklogin.asp" -->
<%
    'Definisco delle variabili
	dim idname, idvalue, nometabella
    idname = Request.Form.Key("IdUser")
    idvalue = Request("IdUser")
	nometabella = Request("Tab")
    
    
    dim rs, cn, strSQL
    dim IdUser, Nome, Cognome, Indirizzo, Cap, Citta, Provincia, Nazione, partitaiva, codicefiscale, Email, Telefono, Cellulare, Username, Password
     
    set rs = Server.CreateObject("Adodb.Recordset")
    set cn = Server.CreateObject("Adodb.Connection")
    cn.Open strConnect
    
    if len(Request("Modify")) > 0 or len(Request("addmore")) > 0 then
        if len(Request("Modify")) > 0 then
            strSQL = "SELECT * FROM " & nometabella & " WHERE " & idname & " = " & idvalue
            Rs.Open strSQL, strConnect, , adLockPessimistic     
        else
            rs.Open nometabella, strConnect, , adLockPessimistic, adCmdTable
            rs.AddNew  
        end if
        
        dim element, elementtype, elementname
        for each element in Request.Form
            elementtype = Mid(element,3,3)
            if len(element) > 5 then elementname = Right(element, len(element) - 5)
            select case elementtype
                case "Dat"
                    if len(Request(element)) > 0 then 
                        Rs(elementname) = Cdate(Request(element))
                    else
                        Rs(elementname) = null
                    end if
                case "Int"
                    if len(Request(element)) > 0 then
                        Rs(elementname) = Cint(Request(element))
                    else
                        Rs(elementname) = null
                    end if
                case "Bol"
                    if len(Request(element)) > 0 then
                        Rs(elementname) = Cbool(Request(element))
                    else
                        Rs(elementname) = null
                    end if
                case "Chr"
                    Rs(elementname) = Request(element)
            end select  
        next
        on error resume next
        err.Clear 
        Rs.Update 
        if err.number <> 0 then
            Response.Write "Errore di inserimento nel database.<br>"
            Response.Write err.Description & "<br>"
            Response.Write err.number & "<br>"
            Rs.close
            cn.close
            Set Rs=nothing
            Set cn=nothing
            Response.Write "<html><head><link rel='stylesheet' href='inc/porto.css' type='text/css'><title>Gestione Utenti</title></head><body>"
            Response.Write "<br><a href='javascript:history.back()'>Indietro</a>"
            Response.Write "</body></html>"
            Response.End 
        end if
        on error goto 0
        Rs.Close
        cn.Close 
        Set Rs = nothing
        Set cn = nothing
        Response.Write "<script>window.opener.location.reload();window.close();</script>"
        Response.End   
    end if
    
    if len(Request("delete")) > 0 then
        strSQL = "DELETE FROM " & nometabella & " WHERE " & idname & " = " & idvalue
        cn.Execute strSQL
        cn.close
        Set rs = nothing
        Set cn = nothing
        Response.Write "<script>window.opener.location.reload();window.close();</script>"
        Response.End   
    end if
    
    if len(idvalue) > 0 then
        strSQL = "SELECT * FROM " & nometabella & " WHERE " & idname & " = " & idvalue
        rs.Open strSQL, strConnect
        IdUser = Rs("IdUser") & ""
        Nome = Rs("Nome") & ""
		Cognome = Rs("Cognome") & ""
        Indirizzo = Rs("Indirizzo") & ""
		Cap = Rs("Cap") & ""
		Citta = Rs("Citta") & ""
		Provincia = Rs("Provincia") & ""
		Nazione = Rs("Nazione") & ""
		partitaiva = Rs("partitaiva") & ""
		codicefiscale = Rs("codicefiscale") & ""
		Email = Rs("Email") & ""
		Username = Rs("Username") & ""
		Password = Rs("Password") & ""	
       
    end if
    
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<title>Amministrazione Utenti</title>
<link href="ghp.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY onLoad="window.focus();">
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td align="center">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<form method="post" action="editUtenti.asp" onSubmit="return VerificaForm(this);"  id="editwindow" name="editwindow">

<tr><td class="lista">
    <table width="700" border="0" cellpadding="2" cellspacing="0">
    <tr valign="top" bgcolor="#DA0E13">
      <td height="1" colspan="3" align="left"></td>
      </tr>

<tr>
	<td width="40%" height="20">Intestazione:</td>
	<td width="60%" height="20"><input name="nome" type="text" id="nome" onKeyPress="javascript:onMod();" value="<%=Rs("nome")%>" size="40"></td>
</tr>
<tr>
	<td width="40%" height="20">Persona di riferimento:</td>
	<td width="60%" height="20"><input name="cognome" type="text" id="cognome" onKeyPress="javascript:onMod();" value="<%=Rs("cognome")%>" size="40"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Indirizzo:</td>
	<td width="60%" height="20" class="text_nero14"><input name="indirizzo" type="text" id="indirizzo" onKeyPress="javascript:onMod();" value="<%=Rs("Indirizzo")%>" size="40"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">CAP:</td>
	<td width="60%" height="20" class="text_nero14"><input name="cap" type="text" id="cap" onKeyPress="javascript:onMod();" value="<%=Rs("CAP")%>" size="6" maxlength="5"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Citt&agrave;:</td>
	<td width="60%" height="20" class="text_nero14"><input name="citta" type="text" id="citta" onKeyPress="javascript:onMod();" value="<%=Rs("citta")%>" size="40"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Provincia:</td>
	<td width="60%" height="20" class="text_nero14"><input name="provincia" type="text" id="provincia" onKeyPress="javascript:onMod();" value="<%=Rs("provincia")%>" size="4" maxlength="2"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Nazione:</td>
	<td width="60%" height="20" class="text_nero14"><input name="nazione" type="text" id="nazione" onKeyPress="javascript:onMod();" value="<%=Rs("nazione")%>" size="10"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Partita Iva:</td>
	<td width="60%" height="20" class="text_nero14"><input name="partitaiva" type="text" id="partitaiva" onKeyPress="javascript:onMod();" value="<%=Rs("Partitaiva")%>" size="14" maxlength="11"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Codice Fiscale:</td>
	<td width="60%" height="20" class="text_nero14"><input name="codicefiscale" type="text" id="codicefiscale" onKeyPress="javascript:onMod();" value="<%=Rs("CodiceFiscale")%>" size="20" maxlength="16"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">E-mail:</td>
	<td width="60%" height="20" class="text_nero14"><input name="Email" type="text" id="Email" onKeyPress="javascript:onMod();" value="<%=Rs("email")%>" size="40"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Telefono:</td>
	<td width="60%" height="20" class="text_nero14"><input name="Telefono" type="text" id="Telefono" onKeyPress="javascript:onMod();" value="<%=Rs("Telefono")%>" size="40"></td>
</tr>
<tr bgcolor="#F0F0EA">
	<td width="40%" height="20" class="text_nero14">Cellulare:</td>
	<td width="60%" height="20" class="text_nero14"><input name="Cellulare" type="text" id="Cellulare" onKeyPress="javascript:onMod();" value="<%=Rs("Cellulare")%>" size="40"></td>
</tr>




</table>
</td></tr>
<tr>
<td height="1" bgcolor="#DA0E13"></td>
</tr>
<tr><td align="center">
<table cellspacing="0" cellpadding="1">
<tr>
<%
	if len(idvalue) > 0 then
%>
<td><input class="tit_eventi" type="submit" name="modify" value="Salva modifiche"></td>
<td><input class="tit_eventi" type="submit" name="delete" value="Cancella" onClick="return confirm('Confermi la cancellazione del record?')"></td>
<% else %>
<td><input class="tit_eventi" type="submit" name="addmore" value="Aggiungi al database"></td>
<% end if %>
<td><input class="testo_boldnero" type="reset" name="reset" value="Ripristina"></td>
<td><input class="testo_boldnero" type="button" name="close" value="Chiudi" onClick="window.close();"></td>
</tr>
</table>
</div></td></tr>
</form>
</table>
</td></tr>
</table>
</BODY>
</HTML>
<%
    cn.Close 
    set rs = nothing
    set cn = nothing
%>
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ciao,
interpretando l'errore, sembra che la query sia errata, probabilmente le variabini non sono valorizzate:

Codice:
        if len(Request("Modify")) > 0 then
            strSQL = "SELECT * FROM " & nometabella & " WHERE " & idname & " = " & idvalue
            Rs.Open strSQL, strConnect, , adLockPessimistic     
        else
            rs.Open nometabella, strConnect, , adLockPessimistic, adCmdTable
            rs.AddNew  
        end if

prova:

Codice:
        if len(Request("Modify")) > 0 then
  [COLOR="#FF0000"]'[/COLOR]          strSQL = "SELECT * FROM " & nometabella & " WHERE " & idname & " = " & idvalue
  [COLOR="#FF0000"]'[/COLOR]          Rs.Open strSQL, strConnect, , adLockPessimistic     
        else
  [COLOR="#FF0000"]'[/COLOR]         rs.Open nometabella, strConnect, , adLockPessimistic, adCmdTable
  [COLOR="#FF0000"]'[/COLOR]         rs.AddNew
        end if

[COLOR="#FF0000"]response.write nometabella&"<br>"
response.write idname&"<br>"
response.write idvalue&"<br>"[/COLOR]

...così visualizza quale variabile non è valorizzata
 

redmilion

Nuovo Utente
16 Feb 2005
29
0
0
grazie per i tuoi aiuti.
Allora ho provato a incollare tutto questo codice da te suggerito

HTML:
        if len(Request("Modify")) > 0 then
  '          strSQL = "SELECT * FROM " & nometabella & " WHERE " & idname & " = " & idvalue
  '          Rs.Open strSQL, strConnect, , adLockPessimistic     
        else
  '         rs.Open nometabella, strConnect, , adLockPessimistic, adCmdTable
  '         rs.AddNew
        end if

response.write nometabella&"<br>"
response.write idname&"<br>"
response.write idvalue&"<br>"

ma questo è il risultato:

HTML:
Errore di compilazione di Microsoft VBScript error '800a0400'

Prevista istruzione

/admin/editUtenti.asp, line 83

end if
^

Ho sbagliato qualcosa?
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
...nella riga 83 vi è il codice per cancellare il record se non erro, il primo errore (line 24), quello da te rappresentato nell'apertura della discussione, era riferito al codice per aggiungere/modificare un record.

Penso che il codice debba essere completamente revisionato ed adattato alle tue esigenze, non basta modificare quello da te pubblicato ma sicuramente ci saranno delle funzioni all'interno dei file:

<!-- #include file="inc/variabili.asp" -->
<!-- #include file="inc/checklogin.asp" -->

Prova a pubblicarmi il codice del file:

<!-- #include file="inc/variabili.asp" -->

Paolo
 

redmilion

Nuovo Utente
16 Feb 2005
29
0
0
ciao, penso che la pagina che mi chiedi non influisca, eccola:

HTML:
<%
    dim strConnect, strConnect2, cartella
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Domains\easyexpo.it\db\db_shop_vc.mdb;"
    cartella ="/public/"
    '---- LockTypeEnum Values ----
    Const adLockReadOnly = 1
    Const adLockPessimistic = 2
    Const adLockOptimistic = 3
    Const adLockBatchOptimistic = 4

    '---- CursorTypeEnum Values ----
    Const adOpenForwardOnly = 0
    Const adOpenKeyset = 1
    Const adOpenDynamic = 2
    Const adOpenStatic = 3
    
    Const adCmdUnknown = &H0008
    Const adCmdText = &H0001
    Const adCmdTable = &H0002
    Const adCmdStoredProc = &H0004  
%>
 

redmilion

Nuovo Utente
16 Feb 2005
29
0
0
Ciao, ho provato ad allegarti la cartellina zippata che contiene tutto ma mi da sempre errore, posso mandartela in altro modo?
Proviamo così... scaricala da qui link rimosso
 
Ultima modifica di un moderatore:

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
...si ci ho lavorato ma molte variabili vengono passate dal "login" che ovviamente non ho.
Oggi pomeriggio ci perdo ancora qualche minuto...
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
intanto come immaginavo alcune variabili non vengono valorizzate, prova ad usare la query riga 23 così:
Codice:
            strSQL = "SELECT * FROM T_Users WHERE " & idname & " = '" & idvalue &"';"

ho fatto alcune prove con la riga 94 modificata così:

Codice:
        strSQL = "SELECT * FROM T_Users WHERE Username = 'User' "
 

redmilion

Nuovo Utente
16 Feb 2005
29
0
0
Ciao, ho provato ad inserire alla riga 23 il codice che mi hai suggerito ma quando poi vado a fare una modifica al nome dell'utente ed a salvare mi restituisce il seguente messaggio di errore

-------------------------------------------------------------------------------------
Microsoft JET Database Engine error '80040e14'

Errore di sintassi (operatore mancante) nell'espressione della query '= '''.

/admin/editUtenti.asp, line 29
-------------------------------------------------------------------------------------

inoltre non ho ben capito, devo provare a cambiare entrambi i codici?
Il secondo intendevi posizionarlo alla riga 94?
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Modifica e/o Cancellazione dati da database MySql PHP 2
E messaggio di conferma dopo inserimento/modifica/cancellazione righe db PHP 10
R Modifica e cancellazione PHP 23
D Jquery - modifica elemenento onlick jQuery 1
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
JeiMax Modifica codice php personalizzato PHP 2
P Pagina modifica record che non funziona PHP 0
L Modifica file upload in ASP Classic ASP 2
P modifica colore A Hover link website . WordPress 2
P Modifica con PHP di un node in una sitemap xml PHP 0
C Software modifica sitoweb in tempo reale WordPress 12
G Modifica immagine di sfondo attraverso un bottone PHP 18
L modifica dati. PHP 1
G modifica corretta funzione da eregi() a preg_match() PHP 3
R Modifica codice per l'upload di più file PHP 1
G Modifica testo Photoshop 3
felino Excel: popolare una cella con la data di modifica della riga a cui appartiene Windows e Software 3
felino [Wordpress] Modifica main color del template WordPress 8
M [PHP] Modifica account PHP 3
S [OFFRO] Creazione di programmi per la modifica automatizzata di testi Offerte e Richieste di Lavoro e/o Collaborazione 0
S [OFFRO] Rimozione o aggiunta di Password ai file PDF e opzionalmente loro modifica Offerte e Richieste di Lavoro e/o Collaborazione 2
F [PHP] modifica del body email con checked PHP 8
G Modifica da sito statico HTML a dinamico in Wordpress SEO e Posizionamento 1
Cosina Modifica script textarea jQuery 0
M [PHP] Calcolare costi su modifica orari PHP 4
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
F modifica recensione google Discussioni Varie 2
C Photoshop CS 6 salvare una modifica Photoshop 0
L [PHP] Modifica in tabella ultimo id PHP 5
C Pagina fb notifica modifica post Social Media Marketing 1
Q Notice: Undefined index: codice in C:\xampp\htdocs\STAGE\calendario\modifica.php on line 10 PHP 8
C [Joomla] [HTML] Modifica codice per adattamento app Joomla 18
Daniele_Carrara [Javascript] Modifica input date Javascript 5
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
Emix [PHP] Ricerca e modifica su due tabelle PHP 26
M [PHP] Tabella datagrid con icona di modifica che cambia in base a parametro PHP 0
Andrea1981 [WordPress] [HTML] Help modifica credits nel footer.Tema Customizr. WordPress 5
K [Visual Basic] Stampa e modifica record non funziona più Visual Basic 0
K [ASP.Net] Problema stampa e modifica ms sql ASP.NET 0
K stampa e modifica tabella in php e ms sql PHP 2
Michaelweb93 [WordPress] [HTML] Modifica sezione - pagina sito web WordPress 1
A [PHP] [RISOLTO] Modifica record db da form PHP 11
T [PHP] piccola modifica a script (non mio...) PHP 8
P Cerco programmatore per modifica sito wordpress Offerte e Richieste di Lavoro e/o Collaborazione 4
Z Modifica ricorsiva file html HTML e CSS 3
Trapano [PHP] modifica simultanea di più campi nel db PHP 1
K [CERCO] Programmatore per modifica tema wp Offerte e Richieste di Lavoro e/o Collaborazione 2
U modifica sender-receiver email Posta Elettronica 4
W modifica firma Supporto Mr.Webmaster 20
M Modifica parametro mysql_result($result, $i, 'id') Deprecato dal 5.5 PHP 10

Discussioni simili