Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Campo data da lasciare vuoto

    Cia a tutti, ho il seguen form che mi permette di inserire un'info:

    codice:
    <%	Dim IDact, datadal, dataal, titolo, descrizione, anno 
     %>
    <table width="429" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#666666">
      <tr> 
        <td bgcolor="#CCCCCC"> 
          <div align="center"> 
            <table bordercolordark="#E5E5E5" bordercolorlight="#000000" border="0" align="center" width="100%" cellpadding="0" cellspacing="1">
              <tr bgcolor="#FFFFFF"> 
                <td width="17%"><font size="2" face="Tahoma, Verdana, Arial">
                  <input type= "hidden" name= "IDact" value="<%=IDact%>"></font></td>
                <td width="83%" colspan="2"><div align="left"><font face="Tahoma, Verdana, Arial, Times New Roman" size="2"><font color="#CC0000"><%=IDact%></font></font></div></td>
              </tr>
              <tr bgcolor="#FFFFFF"> 
                <td width="17%"><font face="Tahoma, Verdana, Arial" size="2"> 
                  Dal</font></td>
                <td width="83%" colspan="2"><div align="left">
                  <font face="Tahoma, Verdana, Arial" size="2">
                  <input name="datadal" type="text" id="datadal" value="<%=datadal%>">
     al 
     <input name="dataal" type="text" id="dataal" value="<%=dataal%>">
    </font></div></td>
              </tr>
              <tr bgcolor="#FFFFFF"> 
                <td width="17%" valign="top"> <font size="2" face="Tahoma, Verdana, Arial"> 
                  Attivita</font></td>
                <td width="83%" colspan="2"><div align="left">
                  <input name="titolo" type="text" id="titolo" value="<%=titolo%>">
                </div></td>
              </tr>
              <tr bgcolor="#FFFFFF"> 
                <td width="17%"><font face="Tahoma, Verdana, Arial" size="2"> 
                  Note </font></td>
                <td width="83%" colspan="2"><div align="left">
                  <input name="descrizione" type="text" id="descrizione" value="<%=descrizione%>">
                </div></td>
              </tr>
              <tr bgcolor="#FFFFFF"> 
                <td width="17%"> <font face="Tahoma, Verdana, Arial" size="2"> 
                  Anno</font></td>
                <td width="83%" colspan="2"><div align="left">
                  <input name="anno" type="text" id="anno" value="<%=anno%>">
                </div></td>
              </tr>
              <tr bgcolor="#FFFFFF"> 
                <td width="17%"> </td>
                <td align="right" width="83%" colspan="2">
                  <div align="right">
                    <input name="imageField" type="image" src="/images/fraccia_invio2.gif" width="20" height="20" border="0">
                  </div></td>
              </tr>
            </table>
          </div>
        </td>
      </tr>
    </table>


    Che punta a questo file ASP che effettua l'inserimento:

    codice:
    <%
    	Option Explicit
    session.LCID=1040
    %>
    
    
    
    <%
    '---Dichiarazione variabili
    	Dim datadal, dataal, titolo, descrizione, anno, SQL, RS
    	
    	datadal = Request.Form("datadal")
    	dataal = Request.Form("dataal")
    	titolo = Request.Form("titolo")
    	descrizione = Request.Form("descrizione")
    	anno = Request.Form("anno")
    
    Function quote(testo)
    
       quote = Replace(testo, "'", "''")
    
    End Function
    
    		SQL = " Insert INTO attivita (datadal, dataal, titolo, descrizione, anno) VALUES ('"& datadal &"', '"& dataal &"', '"& titolo &"', '"& descrizione &"', '"& anno &"' )"
    		'SQL = " Insert INTO attivita (datadal, dataal, titolo, descrizione, anno) VALUES ('"& quote(datadal) &"', '"& quote(dataal) &"', '"& quote(titolo) &"', '"& quote(descrizione) &"', '"& quote(anno) &"' )"
    
    		Set RS = Conn.Execute(SQL)
    		'Response.Write SQL
    		Response.Redirect "ACT_list.asp"
    %>

    La mia domanda è che in alcune informazioni io voglia inserire solo la data d'inizio (datadal) e lasciare vuoto il campo della data di fine (dataal) come posso fare?

    Accade che se lo faccio adesso mi da errore ovvero

    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07' 
    
    [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. 
    
    /admin/ACT_update_proc.asp, line 22



    Chi mi da una mano???
    Saluti da Francesco G.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il campo data/ora devi metterlo "non richiesto".

    Roby

  3. #3
    Ciao Roby,
    in effetti nel DB access non sono segnati come richiesti..... ma intanto se lascio il campo vuoto mi da errore.... come devo fare?
    Saluti da Francesco G.

  4. #4
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Originariamente inviato da iz7auh
    Ciao Roby,
    in effetti nel DB access non sono segnati come richiesti..... ma intanto se lascio il campo vuoto mi da errore.... come devo fare?
    Il problema è dato dagli apici quando la variabile è vuota

    '"& dataal &"'

    Devi fare una funzione che, nel caso in cui la variabile sia vuota, restituisca un NULL senza gli apici.

    codice:
    Function myData(ladata)
      If isNull(ladata) Then
          myData = NULL
       Else
          myData = "'" & ladata & "'" 
       End If
    End Function

  5. #5
    Ti ringrazio, ma poi come la integro nel mio codice?
    Saluti da Francesco G.

  6. #6
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Originariamente inviato da iz7auh
    Ti ringrazio, ma poi come la integro nel mio codice?
    codice:
    SQL = " Insert INTO attivita (datadal, dataal, titolo, descrizione, anno) VALUES (" & myData(datadal) & ", " & myData(dataal) & ", '"& titolo &"', '"& descrizione &"', '"& anno &"' )"

  7. #7
    Ciao,
    non va, ho fatto come da te detto, ecco il codice....

    codice:
    <%
    	Option Explicit
    session.LCID=1040
    %>
    
    
    
    <%
    '---Dichiarazione variabili
    	Dim datadal, dataal, titolo, descrizione, anno, SQL, RS
    	
    	datadal = Request.Form("datadal")
    	dataal = Request.Form("dataal")
    	titolo = Request.Form("titolo")
    	descrizione = Request.Form("descrizione")
    	anno = Request.Form("anno")
    
    Function myData(ladata)
      If isNull(ladata) Then
          myData = NULL
       Else
          myData = "'" & ladata & "'" 
       End If
    End Function
    
    		SQL = " Insert INTO attivita (datadal, dataal, titolo, descrizione, anno) VALUES (" & myData(datadal) & ", " & myData(dataal) & ", '"& titolo &"', '"& descrizione &"', '"& anno &"' )"
    		
    		Set RS = Conn.Execute(SQL)
    		'Response.Write SQL
    		Response.Redirect "ACT_list.asp"
    %>

    ho il seguente errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

    /admin/ACT_add_proc.asp, line 28


    ho stampato la quesry:

    Insert INTO attivita (datadal, dataal, titolo, descrizione, anno) VALUES ('01/01/2005', '', 'IZ7AUH', 'TEST', '2005' )
    Saluti da Francesco G.

  8. #8
    Se l'inserimento delle date funziona con la sintassi che usi (e questo lo do per scontato), bisogna dedurre che i campi "datadal" e "dataal" sono campi testo.

    La query che hai stampato dovrebbe funzionare a condizione che il campo "dataal" non sia richiesto (e questo lo hai già verificato) ma anche che ne sia consentita la lunghezza zero.

    Hai controllato anche questo?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  9. #9
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Nella query che hai stampato ci sono gli apici senza alcun valore all'interno, quindi il valore passato non era Null, ma forse semplicemente 0. Prova a perfezionare la funzione così

    codice:
    Function myData(ladata)
      If isNull(ladata) OR ladata = "" Then
          myData = NULL
       Else
          myData = "'" & ladata & "'" 
       End If
    End Function

  10. #10
    Il problema è dato dagli apici quando la variabile è vuota
    No, in un campo di testo Access non richiesto in cui sia consentita lunghezza zero puoi benissimo inserire una stringa vuota, con tanto di apici. Verifica tu stesso. L'errore non dipende da quello.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

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.