Vs2013 come inserire nuovi record nel database access

lunedì 06 aprile 2015 - 12.05
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Access (.mdb)  |  Office 2010  |  Chrome  |  SQL Reporting Services

paolo23 Profilo | Newbie

Buona Pasquetta a tutti

Non riesco ad inserire nuovi record nel database. Non rilevo errori in fase di compilazione ma i record non vengono aggiornati.

Evidentemente mi sfugge qualcosa....

Vi Trascrivo le due sub che uso, commentati trovate altri tentativi, tutti a vuoto!

Nella prima sub cambio colore ai controlli calendario della form e nella seconda 'vorrei' inserire l' IDlavoratore e la data dell' operazione.

Faccio presente che la tabella del database ha 184 righe relative all' ID = 1 mentre non ci sono record per l'ID 2che è quello su cui devo operare.

*********************************************************************************
Private Sub SegnaGiorniLavorati(param, ID, mese)
Dim c As Control
Dim D, D1, FineMese As Date
FineMese = DateAdd("m", 1, param) 'Mese successivo
FineMese = CDate("1/" & Month(FineMese) & "/" & Year(FineMese)) 'Primo gg del mese successivo
FineMese = DateAdd("d", -1, FineMese) ' fine mese
D = Date.Parse(FineMese).ToString
D1 = CDate(D)
Dim giorni As Integer = D1.ToString("dd")
D1 = DateAdd(DateInterval.Day, -giorni + 1, D) 'primo del mese corrente
Dim ggsett As String
Dim a As Integer
Dim y As Integer
Dim xx As String
a = TabPresenze.Controls.Count
y = 0
If D1 <= Today Then
For b As Integer = 0 To a - 1 Step 1
For Each c In TabPresenze.Controls
If Not IsNothing(c.Tag) And c.Tag >= D1 And c.Tag <= Today And c.BackColor = Color.White

Then
xx = c.Tag
ggsett = CDate(xx).ToString("ddd") 'c.Tag.ToString("ddd")
If ggsett = "lun" Or ggsett = "mar" Or ggsett = "mer" Or ggsett = "gio" Or ggsett =

"ven" Then
c.BackColor = Color.LightGreen
RegistraPresenze(xx, ID, anno)
End If
End If
Next
Next
End If

End Sub

*********************************************************************************

Private Sub RegistraPresenze(xx, ID, anno)
Me.RegistroTableAdapter.FillByIDanno(MainDataSet.Registro, ID, anno)
Me.RegistroTableAdapter.InsertPresenza(ID, CDate(xx))
Me.RegistroTableAdapter.Update(Me.MainDataSet.Registro)

'Me.RegistroTableAdapter.Fill(MainDataSet.Registro)
'Dim newRegistroRow As MainDataSet.RegistroRow
'newRegistroRow = Me.MainDataSet.Registro.NewRegistroRow()
'newRegistroRow.IDLavoratore = ID
'Me.MainDataSet.Registro.Rows.Add(newRegistroRow)
'Me.RegistroTableAdapter.Update(Me.MainDataSet.Registro)

'Me.RegistroTableAdapter.Fill(MainDataSet.Registro)
'Dim newRegistroRow As MainDataSet.RegistroRow
'newRegistroRow = MainDataSet.Registro.NewRegistroRow()
'newRegistroRow.IDLavoratore = ID
'newRegistroRow.Data = CDate(xx).ToString
'newRegistroRow.Presente = True

'MainDataSet.Registro.Rows.Add(newRegistroRow)

'' 'Aggiorna Database
'RegistroTableAdapter.Update(MainDataSet.Registro)
'' 'Refresh dataset
'Me.RegistroTableAdapter.Fill(MainDataSet.Registro)

End Sub
*************************************************************************************

Cosa sbaglio ??? (sob)
Paolo

jekisi Profilo | Senior Member

Ma per aggiungere i record perchè non fai una query insert?

Se mi dici il nome della tabella, i nomi dei campi e che tipo di campi sono (Contatore, numerico, testo, ecc...) ti risolvo il problema.

paolo23 Profilo | Newbie

Grazie per la risposta.

Prima però una segnalazione al moderatore:

So che è vietato il cross thread tuttavia, e vi assicuro in perfetta buona fede, io ho postato la mia domanda in diversi forum. Ieri sera il moderatore di MasterDrive.it mi ha chiuso il thread (quasi alla soluzione del mio problema) appunto perchè ne avevo aperto uno anche in questo forum !
Non voglio certo contravvenire nessun regolamento (anche se a mio parere un confronto più aperto gioverebbe alla discussione) e quindi prima che mi venga chiuso chiedo il permesso di continuare o meno.
grazie per la risposta
Paolo

paolo23 Profilo | Newbie

Buon giorno a tutti
Credo di aver trovato la causa del mio intoppo.
Il mio database era in locale ed il parametro 'copia nella directory di output' era su 'copia sempre'. l' ho cambiato in 'copia se nuovo' e risponde dai comandi del binding navigator ma ancora non dalla mia sub.
Allora ho spostato il DB in una directory esterna, modificato la stringa di connessione ed ora funziona benissimo.
Saluti
Paolo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5