10 messaggi dal 17 dicembre 2021
buongiorno a tutti e scusate per le domande che pongo ma alle volte come ogni programmatore sa bene non si ce ne esce se non con l'aiuto di qualcuno che magari ha già effettuato l'operazione.

Il mio ultimo problema è il seguente: Date le tre tabelle così composte facenti parte del database "dipendenti".
DIPENDENTI
id - contatore
codicedipendente - numerico
nome - testo
cognome - testo
sezionelavoro - testo
INGRESSI
idingresso - contatore
codicedipingresso - numerico (collegato con id dipendente)
dataingresso - data/ora
oraingresso - data/ora
USCITE
iduscita - data/ora
codicedipuscita - numerico (collegato con idingresso)
datauscita - data/ora
orauscita - data/ora

il problema è il seguente (anche se qualcuno possibilmente mi chiede come mai la separazione in tabelle dei dati dico che è stata una scelta necessaria per relazionare l'ingresso e l'uscita ad un dipendente specifico):

devo creare un form html che mi permetta di inserire all'interno della tabella ingresso e quella di uscita il nuovo record. In base alle relazioni che ci sono (come sopra) ho creato questo file html:

<form method="POST" action="inserisci_dati_ingresso.asp">
<input name="codiceingresso" id="codiceingresso">
<input type="submit" name="submit" id="submit" value="Conferma">
</form>
<form method="POST" action="inserisci_dati_uscita.asp">
<input type="text" name="codiceuscita" id="codiceuscita">
<input type="submit" name="submit" id="submit" value="Conferma">
</form>


i due form si connettono a due file di asp di inserimento che dovrebbero generare i recordset della tabella correlata (ingresso per ingresso e uscita per uscita).
L'action invia i dati a inserisci_dati_ingresso.asp o (in base a dove si clicca per confermare) inserisci_dati_uscita.asp cui scrittura identica per entrambi i file risulta questa:

<%
dim strcodiceingresso (o strcodiceuscita nel caso della uscita)
strcodiceingresso = request.form("codiceingresso") (o scodiceuscita nel caso della uscita)

If strcodiceingresso <> "" Then (idem quì se ingresso o uscita)

' Connessione al DB
myDB = "database/dipendenti.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(myDB)

Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "ingressi ( o uscite )", conn, 3, 3
rs.addnew
rs("codicedipendente ") = strcodiceingresso
rs.update
%>
<%
response.write "SE OK"
Else
response.write "SE NO"

End If
%>
<%
' Chiusura del database
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>


IL MIO PROBLEMA ALLORA E' IL SEGUENTE:
SE ELIMINO LE RELAZIONI L'INSERIMENTO NELLE DUE TABELLE AVVIENE PERFETTAMENTE MA NON RIESCO POI A RELAZIONARE L'ORA DI INGRESSO CON QUELLO DI USCITA IN QUANDO NON C'E' CORRISPONDENZA;

"MENTRE SE UTILIZZO LA RELAZIONE: IL PRIMO FILE inserisci_dati_ingresso.asp funziona ed inserisce perfettamente il record nella tabella ingressi, il secondo inserisci_dati_uscita.asp mi da errore in quanto coesiste la relazione".

1) POSSO CREARE UN UNICO FORM PER INSERIRE I DATI IN MANIERA CHE SI COMPLETINO I RECORD DELLE TABELLE INGRESSI E USCITE? O MANTENENDO i due file asp che si interfacciano alle due tabelle relazionate devo modificare qualcosa?

2) E' possibile risolvere in qualche modo l'inserimento per far si che si completi tutto a dovere? Vi prego di rispondere indicando anche il codice così posso provare. Grazie mille a tutti.

AGGIORNAMENTO:
PROVANDO E RIPROVANDO HO TROVATO LA SOLUZIONE PER FAR IMMETTERE DAL FORM NELLA TABELLA INGRESSI IL DATO CHE MI SERVIVA:
<%
' Definizione della variabile

dim strcodicedipingresso
strcodicedipingresso = request.form("codicedipingresso")

dim strCode
strCode="innovatel"

' Mappaggio del database
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("database/dipendenti.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn

sql = "SELECT * FROM (INGRESSI INNER JOIN DIPENDENTI ON DIPENDENTI.ID = INGRESSI.[CODICEDIPINGRESSO]) WHERE codicedipingresso = "&request.form("codicedipingresso")&" "

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

' Preparazione e scrittura nuovo record
rs.addnew
rs(1) = strcodicedipingresso
rs.update

' Chiusura del database
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
response.redirect "index.asp"
%>

MA NON RIESCO A VENIRNE A CAPO PER LA PARTE DELLA TABELLA USCITE IN QUANTO ESSENDO COLLEGATA ALLA TABELLA INGRESSI MI DA ERRORE SE MODIFICO LA STRINGA IN QUESTO MODO:

sql = "SELECT * FROM ( USCITE INNER JOIN INGRESSI ON INGRESSI.IDINGRESSO = USCITE.[CODICEDIPUSCITA]) WHERE codicedipuscita = "&request.form("codicedipuscita ")&" "
Modificato da Regista81 il 02 gennaio 2022 12:04 -
427 messaggi dal 13 novembre 2009
Scusa ma mi sfugge la cosa. Innanzitutto immagino che gli ingressi non siano giornalieri visto che non ti basi sulle date. Ad es. se entro alle 08.00 di oggi potrei uscire alle 23:59 di oggi o alle 01:00 di domani.
Cosa permette il recupero del codice ingresso all'atto dell'uscita? L'ultimo codice ingresso inserito?
Potresti spiegare il flusso ingresso/uscita?

F.
Thanks for posting this great full informative, i really enjoyed to read this, keep it up
10 messaggi dal 17 dicembre 2021
flaviovb ha scritto:
Scusa ma mi sfugge la cosa. Innanzitutto immagino che gli ingressi non siano giornalieri visto che non ti basi sulle date. Ad es. se entro alle 08.00 di oggi potrei uscire alle 23:59 di oggi o alle 01:00 di domani.
Cosa permette il recupero del codice ingresso all'atto dell'uscita? L'ultimo codice ingresso inserito?
Potresti spiegare il flusso ingresso/uscita?

F.


No, no, gli ingressi sono giornalieri così come le uscite. A me serve solo capire come impostare l&#8217;accesso alla tabella secondaria come ho spiegato prima.
Modificato da Regista81 il 09 gennaio 2022 23:52 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.