Bonjour,
je fais une requête qui me permet de remplir le champ d'une table Soudure à partir d'un champ d'une table Piece.
le problème est que dans mon dataRow, il n'arrive pas à récupérer tous les champs.
voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Private Function UpdateDataSource(ByRef SourcesRows As DataRowCollection) As Boolean UpdateDataSource = True If VerifString(Me.Destination.SourceName) And VerifString(Me.Destination.TableName) And _ VerifString(Me.Destination.ProductionDate) And VerifString(Me.Destination.RelationedIdentifier) Then Dim cSource As Productys.Structure.Classes.Source_de_Donnees = CurrentProjet.BDD(Me.Destination.SourceName) 'Si la source de données a bien été trouvée If Not cSource Is Nothing Then 'Récupération du provider Dim PrvDest As Productys.Structure.Classes.Provider = Providers(cSource.ProviderName) If Not PrvDest Is Nothing Then Dim UpdtCmd As String = "UPDATE " & EntreCrochets(Me.Destination.TableName, PrvDest) & " SET " & EntreCrochets(Me.Destination.RelationedIdentifier, PrvDest) & " = " 'Pour chaque lignes de la table source For Each row As DataRow In SourcesRows Try 'Création de la requete d'insertion du champ unique dans la table destination Dim SQLCmd As String = UpdtCmd & "'" & row(Me.Source.UniqueIdentifier) & "' " SQLCmd &= " WHERE " & EntreCrochets(Destination.ProductionDate, PrvDest) & " BETWEEN " & _ SetSQLDateTimeFormat(row(Me.Source.StartDate), cSource) & " AND " & _ SetSQLDateTimeFormat(row(Me.Source.StopDate), cSource) & "" If Me.Source.SecondIdentifier <> "" And Me.Destination.SecondField <> "" Then SQLCmd &= " AND " & EntreCrochets(Destination.SecondField, PrvDest) & " = " & row(Me.Source.SecondIdentifier) & "" End If If Me.UpdateOnlyNull Then SQLCmd &= " AND " & Destination.RelationedIdentifier & " IS NOT NULL " End If 'Execution de la requete de mise à jour If Not PrvDest.ExecuteQuery(cSource, SQLCmd, Nothing) Then UpdateDataSource = False End If Catch ex As Exception UpdateDataSource = False End Try Next End If End If End If Return UpdateDataSource End Function
le problème se pose sur la ligne
pour la partie row(Me.Source.SecondIdentifier), quand je regarde les champs que contient row, il n'en trouve que 3 au lieu de 6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If Me.Source.SecondIdentifier <> "" And Me.Destination.SecondField <> "" Then SQLCmd &= " AND " & EntreCrochets(Destination.SecondField, PrvDest) & " = " & row(Me.Source.SecondIdentifier) & "" end if
si quelqu'un à une idée, je ne sais vraiement pas d'où ça peut venir.![]()
merci d'avance
Partager