ciao sono quasi al termine del mio progetto per paghe ho un problema ,
il mio progetto è composto da 16 textbox numeriche dove io vado a inserire i vari valori e di 3 combobox dove inserisco il Nome dell operaio il mese e l anno il tutto si appoggia a un database access.
il problema è il seguente devo recuperare un dato chiamato (residuo mese succesivo) in una textbox chiamata residuo mese precedente ma il dato viene recuperato in base alle condizioni specifiche cio dopo aver inserito il nome il cognome e l anno.-
come posso fare questo è il codice di connessione al database
Private Sub cmdSeleziona_Click()
' VERIFICO CHE SIA SELEZIONATO UN RECORD REALE (NON VUOTO)
If cmbSeleziona.Text = "" Then
lblMessaggio.Caption = "Selezionare un Utente valido"
Else
lblMessaggio.Caption = ""
' UTILIZZO LA FUNZIONE SPLIT PER RECUPERARE IL VALORE ID NELLA COMBO BOX
s = Split(cmbSeleziona.Text, " ")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE IL RECORD SELEZIONATO
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=paghe.mdb"
rs.Open "SELECT * FROM paghe WHERE id = " & CInt(s(0)), cn, 1
' RIEMPIO I CAMPI DELLA FORM CON I VALORI ESTRATTI DAL DATABASE
NOME.Text = rs("nome").Value
MESE.Text = rs("mese").Value
ANNO.Text = rs("anno").Value
ORE_LAV.Text = rs("ore lavorate").Value
ORE_FES.Text = rs("ore festivita").Value
PREZZO_ORA.Text = rs("prezzo ora").Value
IMP_SALARIO.Text = rs("importo salario").Value
IMP_FESTIVITA.Text = rs("importo festivita").Value
MALATT_MATERN.Text = rs("malattia maternita").Value
PREZZO_PREMI.Text = rs("prezzo premi").Value
PREMI_E_ALTRE_VOCI.Text = rs("importo altre voci").Value
IMPORTO_LORDO.Text = rs("importo lordo").Value
IRPAF.Text = rs("irpaf").Value
CONTRIB_IMPS.Text = rs("contributi imps").Value
IMPORTO_NETTO.Text = rs("importo netto").Value
IMPORTO_BUSTA.Text = rs("importo busta").Value
IMPORTO_ASSEG.Text = rs("importo assegno").Value
SALDO.Text = rs("saldo").Value
IMPORTO_PAGATO.Text = rs("importo pagato").Value
rs.Close
cn.Close
End If
End Sub
Private Sub cmdCancella_Click()
' CONTROLLO CHE IL RECORD SELEZIONATO NON SIA VUOTO
If cmbSeleziona.Text = "" Then
lblMessaggio.Caption = "Selezionare un Utente valido"
Else
' COME SOPRA...
s = Split(cmbSeleziona.Text, " ")
' ESEGUO LA CANCELLAZIONE DEL RECORD SELEZIONATO
Set cn = New ADODB.Connection
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=paghe.mdb"
cn.Execute ("DELETE * FROM paghe WHERE id = " & CInt(s(0)))
cn.Close
' PULISCO E RICARICO LA COMBO BOX
cmbSeleziona.Clear
Call Form_Load
End If
End Sub
Private Sub cmdSalva_Click()
' CONTROLLO LA VALIDITA' DEI CAMPI
If Len(Trim(ORE_LAV.Text)) = 0 Or IsNumeric(ORE_LAV.Text) = False Then
lblMessaggio.Caption = "Inserire ore lavorate"
ORE_LAV.SetFocus
ElseIf Len(Trim(ORE_FES.Text)) = 0 Or IsNumeric(ORE_FES.Text) = False Then
lblMessaggio.Caption = "Inserire ore festivita"
ORE_FES.SetFocus
ElseIf Len(Trim(PREZZO_ORA.Text)) = 0 Or IsNumeric(PREZZO_ORA.Text) = False Then
lblMessaggio.Caption = "Inserire prezzo "
PREZZO_ORA.SetFocus
ElseIf Len(Trim(IMP_SALARIO.Text)) = 0 Or IsNumeric(IMP_SALARIO.Text) = False Then
lblMessaggio.Caption = "Inserire il importo salario "
IMP_SALARIO.SetFocus
Else ' SE TUTTE LE CONDIZIONI SONO STATE SODDISFATTE...
' COMANDO SQL A SECONDA CHE SI TRATTI DI UNA INSERT O DI UN UPDATE
Dim SQL As String
' MESSAGGIO DI CONFERMA (SECONDO LO STESSO CRITERIO DESCRITTO SOPRA)
Dim conferma As String
' COME SOPRA...
s = Split(cmbSeleziona.Text, " ")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=paghe.mdb"
If cmbSeleziona.Text = "" Then ' ...ESEGUO LA INSERT
SQL = "INSERT INTO paghe " _
& "(nome, mese, anno, [ore lavorate], [ore festivita], [prezzo ora], [importo salario], [importo festivita], [malattia maternita],[prezzo premi]," _
& "[importo altre voci], [importo lordo], [irpaf], [contributi imps], [importo netto], [importo busta], [importo assegno], [saldo]," _
& "[importo pagato])VALUES " _
& "('" & Replace(NOME.Text, "'", "''") & "', " _
& "'" & Replace(MESE.Text, "'", "''") & "', " _
& "'" & Replace(ANNO.Text, "'", "''") & "', " _
& "'" & Replace(ORE_LAV.Text, "'", "''") & "', " _
& "'" & Replace(ORE_FES.Text, "'", "''") & "', " _
& "'" & Replace(PREZZO_ORA.Text, "'", "''") & "', " _
& "'" & Replace(IMP_SALARIO.Text, "'", "''") & "'," _
& "'" & Replace(IMP_FESTIVITA.Text, "'", "''") & "'," _
& "'" & Replace(MALATT_MATERN.Text, "'", "''") & "'," _
& "'" & Replace(PREZZO_PREMI.Text, "'", "''") & "'," _
& "'" & Replace(PREMI_E_ALTRE_VOCI.Text, "'", "''") & "'," _
& "'" & Replace(IMPORTO_LORDO.Text, "'", "''") & "'," _
& "'" & Replace(IRPAF.Text, "'", "''") & "'," _
& "'" & Replace(CONTRIB_IMPS.Text, "'", "''") & "'," _
& "'" & Replace(IMPORTO_NETTO.Text, "'", "''") & "'," _
& "'" & Replace(IMPORTO_BUSTA.Text, "'", "''") & "'," _
& "'" & Replace(IMPORTO_ASSEG.Text, "'", "''") & "'," _
& "'" & Replace(SALDO.Text, "'", "''") & "'," _
& "'" & Replace(IMPORTO_PAGATO.Text, "'", "''") & "')"
conferma = "Inserimento effettuato con successo"
Else ' ...ESEGUO L'UPDATE
SQL = "UPDATE paghe SET " _
& "[nome] = '" & Replace(NOME.Text, "'", "''") & "', " _
& "[mese] = '" & Replace(MESE.Text, "'", "''") & "', " _
& "[anno] = '" & Replace(ANNO.Text, "'", "''") & "', " _
& "[ore lavorate] = '" & Replace(ORE_LAV.Text, "'", "''") & "', " _
& "[ore festivita] = '" & Replace(ORE_FES.Text, "'", "''") & "', " _
& "[prezzo ora] = '" & Replace(PREZZO_ORA.Text, "'", "''") & "', " _
& "[importo salario] = '" & Replace(IMP_SALARIO.Text, "'", "''") & "' " _
& "[importo festivita] = '" & Replace(IMP_FESTIVITA.Text, "'", "''") & "' " _
& "[malattia maternita] = '" & Replace(MALATT_MATERN.Text, "'", "''") & "' " _
& "[prezzo premi] = '" & Replace(PREZZO_PREMI.Text, "'", "''") & "' " _
& "[importo altre voci] = '" & Replace(PREMI_E_ALTRE_VOCI.Text, "'", "''") & "' " _
& "[importo lordo] = '" & Replace(IMPORTO_LORDO.Text, "'", "''") & "' " _
& "[irpaf] = '" & Replace(IRPAF.Text, "'", "''") & "' " _
& "[contributi imps] = '" & Replace(CONTRIB_IMPS.Text, "'", "''") & "' " _
& "[importo netto] = '" & Replace(IMPORTO_NETTO.Text, "'", "''") & "' " _
& "[importo busta] = '" & Replace(IMPORTO_BUSTA.Text, "'", "''") & "' " _
& "[importo assegno] = '" & Replace(IMPORTO_ASSEG.Text, "'", "''") & "' " _
& "[saldo] = '" & Replace(SALDO.Text, "'", "''") & "' " _
& "[importo pagato] = '" & Replace(IMPORTO_PAGATO.Text, "'", "''") & "' " _
& "WHERE id = " & CInt(s(0))
conferma = "Modifica effettuata con successo"
End If
' ESEGUO IL COMANDO SQL CHE ARRIVA DELLA CONDIZIONE
cn.Execute (SQL)
lblMessaggio.Caption = conferma
cn.Close
' PULISCO E RICARICO LA COMBO BOX
cmbSeleziona.Clear
Call Form_Load
End If
End Sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
ControlliTAB = "NOME MESE ANNO ORE_LAV ORE_FES PREZZO_ORA IMP_SALARIO IMP_FESTIVITA MALATT_MATERN PREZZO_PREMI PREMI_E_ALTRE_VOCI" _
& "RES_MESE_PREC IMPORTO_LORDO"
' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE I DATI
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=paghe.mdb"
rs.Open "SELECT DISTINCT nome FROM paghe ORDER BY nome ASC", cn, 1
NOME.AddItem ("")
While rs.EOF = False
NOME.AddItem ("" & rs("nome").Value)
rs.MoveNext
Wend
rs.Close
rs.Open "SELECT DISTINCT mese FROM paghe ORDER BY mese ASC", cn, 1
MESE.AddItem ("")
While rs.EOF = False
MESE.AddItem ("" & rs("mese").Value)
rs.MoveNext
Wend
rs.Close
rs.Open "SELECT DISTINCT anno FROM paghe ORDER BY anno ASC", cn, 1
ANNO.AddItem ("")
While rs.EOF = False
ANNO.AddItem ("" & rs("anno").Value)
rs.MoveNext
Wend
rs.Close
rs.Open "SELECT id, nome, mese, anno FROM paghe ORDER BY anno ASC", cn, 1
cmbSeleziona.AddItem ("")
While rs.EOF = False
cmbSeleziona.AddItem (rs("id").Value & " - " & rs("nome").Value & " " & rs("mese").Value & " - " & rs("anno").Value)
rs.MoveNext
Wend
rs.Close
cn.Close
End Sub