• User

    Duplicazione record DB access

    Ciao a tutti, dopo un primo post andato a buon fine ci sto provando gusto ed avrei la seguente esigenza...

    In un database access c'è la tabella "Prodotti" con gli articoli inseriti e circa 15 colonne con le informazioni riguardanti l'articolo.

    Quello che vorrei fare è, richiamando a video la lista di tutti gli articoli, cliccare sulla voce |DUPLICA| in corrispondenza di un record e creare così una nuova registrazione ricopiando lo stesso articolo ovviamente però con un nuovo ID ed un nuovo CODICE PRODOTTO il quale non può essere duplicato perche necessariamente univoco (in questo caso basta aggiungere anche una lettera, un numero o un simbolo a quello che ha copiato...)

    Vediamo un po fin dove arrivo di mio, questo codice mi richiama a video tutti i record...
    in corrispondenza di ognuno di questi c'è la possibilità di "Modificare", " Cancellare" e quella nuova che vorrei di "Duplicare"

    
    <!--#include virtual="/ita/include/inc_db.asp"-->
    <table align="center" border="0" width="100%" id="table11">
     <tr>
      <td width="25" bgcolor="#FFFFEC">ID</td>
      <td width="50" bgcolor="#FFFFEC">Codice</td>
      <td width="125" bgcolor="#FFFFEC">Prodotto</td>
      <td width="75" bgcolor="#FFFFEC">Opzioni</td>
     </tr>
    <%
     QSOrdinaPer = Request.QueryString("ordinaper")
     If QSOrdinaPer = "" then
      QSOrdinaPer = "Prodotto"
     End If
     
     SQL = " SELECT * FROM Prodotti WHERE ID  AND Cancellato = False ORDER BY " & QSOrdinaPer
     Set RS = Conn.Execute(SQL)
     
     If Not RS.Eof Then RS.MoveFirst
     Do While Not RS.EoF
    %>
     <tr>
      <td valign="top"><b><%=RS("ID")%></b></td>
      <td valign="top"><%=RS("Codice")%></td>
      <td valign="top"><%=RS("Prodotto")%></td>
      <td valign="top">
       <a href="form_prodotti.asp?id=<%=RS("ID")%>">Modifica</a> | 
       <a href="conferma_elimina.asp?id=<%=RS("ID")%>&tabella=prodotti&descrizione=<%=RS("Prodotto")%>">Cancalla</a> | 
       <a href="duplica.asp?id=<%=RS("ID")%>">Duplica</a>
      </td>
     </tr>
    <%
     RS.MoveNext
     Loop
     RS.Close
    %>
    </table>
     
    <%
     Set RS = Nothing
     Conn.Close
     Set Conn = Nothing
    %>
    
    

    Ora a voi la parola, come devo fare per duplicare un record avanzando però con l'ID e modificando il campo Codice con almeno una lettera nuova?
    grazie mille a chi vorrà aiutarmi!


  • User

    Per l'ID puoi semplicemente metere il campo come tipo "Contatore" all'interno del db access e ogni volta che creerai una nuova riga lui assegnerà un nuovo numero, incrementano l'ultimo inserito. (Anche se non so se sia quello che ti serve visto che non hai specificato di che tipo sia questo ID)

    Per quanto riguarda il codice, come è fatto?puoi postare un codice e come dovrebbe diventare una volta copiato?

    Ciao


  • User

    ciao e scusami se ti rispondo solo ora.

    in pratica il codice è del tipo: AR_SA_01
    a me basterebbe anche aggiungere una sola lettera o un numero qualsiasi a questo codice.

    il progetto mi sembra un po troppo complicato per me, ma vorrei partire con una stringa semplicissima del tipo visualizza i record, scegli e duplica.
    appena posso magari ti posto il codice che ho per la sola visualizzazione.
    thanks 😉


  • User

    Ciao Dubbio, allora mi hai abbandonato?

    questo è il codice della pagina che mi chiama a video tutti i record della tabella:

    <%
    QSOrdinaPer = Request.QueryString("ordinaper")
    If QSOrdinaPer = "" then
    QSOrdinaPer = "Prodotto"
    End If

    SQL = " SELECT * FROM Prodotti WHERE ID AND Cancellato = False ORDER BY " & QSOrdinaPer
    Set RS = Conn.Execute(SQL)

    If Not RS.Eof Then RS.MoveFirst
    Do While Not RS.EoF
    %>
    <tr>
    <td valign="top"><b><%=RS("ID")%></b></td>
    <td valign="top"><%=RS("Codice")%></td>
    <td valign="top"><%=RS("Prodotto")%></td>
    <td valign="top">
    <a href="modifica_prodotti.asp?id=<%=RS("ID")%>">Mod</a> |
    <a href="elimina_prodotti.asp?id=<%=RS("ID")%>&tabella=prodotti&descrizione=<%=RS("Prodotto")%>">Canc</a>
    </td>
    </tr>
    <%
    RS.MoveNext
    Loop
    RS.Close
    %>

    potresti dirmi per favore come posso duplicare?
    grazie in anticipo.