Erreur pour le chargement d'un table a partir d'autre

infogirls Messages postés 15 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 4 novembre 2011 - 4 nov. 2011 à 01:50
NHenry Messages postés 15156 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 septembre 2024 - 5 nov. 2011 à 00:09
slt a tous
je peux transfert les données d'un table a la base de données access a l'autre table je travail avec ce code
Imports System.Data.OleDb
Imports System.Data
Module Module1
Public con As OleDbConnection
Public cmd As OleDbCommand

Public ds As New DataSet
Public ds2 As New DataSet

Public dr As DataRow
Public dr2 As DataRow

Public dt As New DataTable
Public dt2 As New DataTable

Public Ad As New OleDbDataAdapter
Public Ad2 As New OleDbDataAdapter

Public build As New OleDbCommandBuilder
Public build2 As New OleDbCommandBuilder

Public Sub charger1(ByVal tb As String)
ds.Clear()




con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\ouidad\Mes documents\gestion.accdb")
cmd = New OleDbCommand("select * from " & tb)
cmd.Connection = con
con.Open()
Ad = New OleDbDataAdapter(cmd)
Ad.Fill(ds, tb)
dt = ds.Tables(tb)
con.Close()
End Sub

Public Sub charger2(ByVal tb As String)
ds2.Clear()



con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\ouidad\Mes documents\gestion.accdb")
cmd = New OleDbCommand("select * from " & tb)
cmd.Connection = con
con.Open()
Ad2 = New OleDbDataAdapter(cmd)
Ad2.Fill(ds2, tb)
dt2 = ds2.Tables(tb)
con.Close()
End Sub





Public Sub supprimer()
ds.Clear()
charger1("Mas3")

For i = 0 To dt.Rows.Count - 1
If dt.Rows(i).Item(1) = "A" Then

ds2.Clear()
charger2("archive_mas2")

dr2 = dt2.NewRow
dr2(0) = dt.Rows(i).Item(0)
dr2(1) = dt.Rows(i).Item(1)
dr2(2) = dt.Rows(i).Item(2)
dr2(3) = dt.Rows(i).Item(3)
dr2(4) = dt.Rows(i).Item(4)
dr2(5) = dt.Rows(i).Item(5)
'dr2(6) = dt.Rows(i).Item(6)
'dr2(7) = dt.Rows(i).Item(7)
'dr2(8) = dt.Rows(i).Item(8)
'dr2(9) = dt.Rows(i).Item(9)
'dr2(10) = dt.Rows(i).Item(10)
'dr2(11) = dt.Rows(i).Item(11)
'dr2(12) = dt.Rows(i).Item(12)
'dr2(13) = dt.Rows(i).Item(13)
'dr2(14) = dt.Rows(i).Item(14)
'dr2(15) = dt.Rows(i).Item(15)
'dr2(16) = dt.Rows(i).Item(16)
'dr2(17) = dt.Rows(i).Item(17)
'dr2(18) = dt.Rows(i).Item(18)
'dr2(19) = dt.Rows(i).Item(19)
'dr2(20) = dt.Rows(i).Item(20)
'dr2(21) = dt.Rows(i).Item(21)
'dr2(22) = dt.Rows(i).Item(22)
'dr2(23) = dt.Rows(i).Item(23)
'dr2(24) = dt.Rows(i).Item(24)
'dr2(25) = dt.Rows(i).Item(25)
'dr2(26) = dt.Rows(i).Item(26)
'dr2(27) = dt.Rows(i).Item(27)
'dr2(28) = dt.Rows(i).Item(28)
'dr2(29) = dt.Rows(i).Item(29)
'dr2(30) = dt.Rows(i).Item(30)
'dr2(31) = dt.Rows(i).Item(31)
'dr2(32) = dt.Rows(i).Item(32)
'dr2(33) = dt.Rows(i).Item(33)
'dr2(34) = dt.Rows(i).Item(34)
'dr2(35) = dt.Rows(i).Item(35)
'dr2(36) = dt.Rows(i).Item(36)
'dr2(37) = dt.Rows(i).Item(37)
'dr2(38) = dt.Rows(i).Item(38)



dt2.Rows.Add(dr2)


build2 = New OleDbCommandBuilder(Ad2)
MsgBox("t")
Ad2.Update(ds2, "archive_mas2")

End If
Next



For i = 0 To dt.Rows.Count - 1
If dt.Rows(i).Item(1) = "A" Then
ds.Clear()
charger1("Mas3")
dt.Rows(i).Delete()

build = New OleDbCommandBuilder(Ad)
Ad.Update(ds, "Mas3")
End If
Next
MsgBox("ok")

End Sub
mais je trouve des erreurs commele null pour le teste If dt.Rows(i).Item(1) = "A" Then quand il trouve le null il me donne erreur ou erreur insert into .... pouvez vous m'aidez pour corriger l'erreur ou me donne la solution
je travail avec vb.net et access

1 réponse

NHenry Messages postés 15156 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 septembre 2024 159
5 nov. 2011 à 00:09
Bonjour,

Pour le code, regardes le point 2 de ma signature.

Pour l'histoire du null, essayes un truc du genre :
if typeof dt.Rows(i).Item(1) is dbnull Then
(Me rappel plus du code exacte à utiliser)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous