Problème de liaison tardive avec strict on [Résolu]

cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 3 oct. 2015 à 18:42 - Dernière réponse : cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention
- 4 oct. 2015 à 11:11
Bonjour le forum,

Suivant les recommandations de plusieurs modérateurs et contributeurs de ce forum (que je salue), j'ai appliqué le restrictif "Option Strict On, Option Explicit On" et me retrouve donc avec une erreur "option Strict On refuse toute liaison tardive" que je n'arrive pas à solutionner.


       Dim cnPDP As OleDbConnection = New OleDbConnection(ConnectingExcel(newfilePDP))
        cnPDP.Open()

        Dim rsPDP As New ADODB.Recordset
        rsPDP.CursorLocation = ADODB.CursorLocationEnum.adUseServer
        rsPDP.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
        rsPDP.LockType = ADODB.LockTypeEnum.adLockOptimistic

        For Each itemrow In datasetCGN.Tables("CGN").Rows
            rsPDP.Open(" SELECT * FROM [Plan_Production$] " & _
                    " WHERE [Environnement] =" & "'" & itemrow("Environnement") & "' And " & _
                    "       [Application] =" & "'" & itemrow("Application") & "' And " & _
                    "       [Job] =" & "'" & itemrow("Job") & "' ", cnPDP)
            Do Until rsPDP.EOF
                For Each item As String In listofcolumns
                    rsPDP.Fields(item).Value = itemrow(item).ToString
                Next item
                rsPDP.MoveNext()
                System.Windows.Forms.Application.DoEvents()
            Loop
            rsPDP.Close()
        Next


J'obtiens cette erreur sur
itemrow("Environnement")
itemrow("Application")
itemrow("Job")
et itemrow(item)

Pour écrire avec "Microsoft.Office.Interop.Excel.Application()", j'ai écrit
        For i As Integer = 0 To listofcolumns.Count - 1
            Dim castRange As Excel.Range = CType(xlWorkSheet.Cells(1, (columnsPDP + 1) + i), Excel.Range)
            castRange.Value = listofcolumns(i).ToString
        Next i

mais pour écrire avec ADODB, je n'arrive pas à trouver le bon cast.

Merci de vos propositions,
.jean-marc
Afficher la suite 
1816Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention

2 réponses

Répondre au sujet
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 3 oct. 2015 à 18:53
0
Utile
ajout

Pour le datasetCGN
        Dim da As OleDb.OleDbDataAdapter
        Dim datasetCGN As DataSet = New DataSet

        Dim cnCGN As OleDbConnection = New OleDbConnection(ConnectingExcel(fileCGN))
        Dim queryCGN As String = " SELECT * " & _
                                 " FROM [Informations_CGN$] WHERE [Job] IS NOT NULL " & _
                                 " ORDER BY [Environnement] ASC, [Application] ASC, [Job] ASC "
        cnCGN.Open()
        da = New OleDb.OleDbDataAdapter(queryCGN, cnCGN)
        da.Fill(datasetCGN, "CGN")
        cnCGN.Close()
Commenter la réponse de cs_JMO
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 4 oct. 2015 à 11:11
0
Utile
Problème résolu en passant par un DataTable.
        Dim table As DataTable = datasetCGN.Tables(0)
        For j As Integer = 0 To table.Rows.Count - 1
            rs.Open(" SELECT * FROM [Plan_Production$] " & _
                     " WHERE [Environnement] =" & "'" & table.Rows.Item(j).Item(0).ToString & "' And " & _
                     "       [Application] =" & "'" & table.Rows.Item(j).Item(1).ToString & "' And " & _
                     "       [Job] =" & "'" & table.Rows.Item(j).Item(2).ToString & "' ", cn)

jean-marc
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.