Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme Requete Access depuis VB.NET

Principe de l'Anniversaire

    15 janvier 2022 à 9:06:21

    Bonjour je rencontre le problème suivant :

    J'ai une édition depuis Access qui extrait les Concerts ayant eu lieu ce jour (Elle fonctionne très bien). Je souhaiterais pouvoir préparer plusieurs éditions d'avance. Voici le Code que j'ai écrit :

    For I = 1 To 5
                Dim DateJourIncrement = Format(DateAdd(Interval:=DateInterval.Day, I, Date.Today), gcSQLDATE)
                ClauseWhere = " Format([con_date],ddMM) = Format(" & DateJourIncrement & ",ddMM) order by [con_Date] DESC "
                RptNom = "FICHE_JOUR_CONCERT_PLAN"
                OLEOpenReport_PLAN(strDB, RptNom, AcView.acViewPreview, , ClauseWhere)
            Next

    Le code de la Fonction OLEOpenReport_PLAN

    Private Function OLEOpenReport_PLAN(ByVal strDBName As String, ByVal strRptName As String, Optional ByVal intDisplay As Access.AcView = Access.AcView.acViewNormal, Optional ByVal strFilter As String = "", Optional ByVal strWhere As String = "") As Boolean
            Dim bReturn As Boolean = True
            Try
                Dim objAccess As New Access.Application
                objAccess.OpenCurrentDatabase(strDBName, False)
                objAccess.DoCmd.OpenReport(strRptName, intDisplay, strFilter, strWhere, Access.AcWindowMode.acWindowNormal)
                objAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport, strRptName, OutputFormat:="PDF", "C:\Users\" & Environment.UserName & "\AppData\Roaming\IP-Informatique Pourrieres\J H L Appli\Editions\Editions Planifiees\" & strRptName & "_" & DateJour & ".pdf",,,,)
                objAccess.Quit(Access.AcQuitOption.acQuitSaveNone)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objAccess)
                objAccess = Nothing
            Catch ex As Exception
                bReturn = False
                MessageBox.Show(ex.ToString, "Erreur Automation", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Return bReturn
        End Function

    Et pour finir le Code de l'Etat Access

    SELECT CONCERTS.CON_Date, VILLES.VIL_NOM
    FROM VILLES INNER JOIN CONCERTS ON VILLES.IDVILLE = CONCERTS.IDVILLE
    WHERE (((Format([con_date],"ddmm"))=Format(Date(),"ddmm")))
    ORDER BY CONCERTS.CON_Date DESC;

    Bien sur dans l'état la clause where est supprimée pour être remplacée par la mienne.

    Mais à chaque appel d'un état j'ai une erreur "Opérateur Absent "

    Le Code de la fonction de formatage de date :

    Public Const gcSQLDATE = "\#MM\/dd\/yyyy\#"

    En debogage voila le contenu de la ClauseWhere :

     Format([con_date],ddMM) = Format(#01/16/2022#,ddMM) order by [con_Date] DESC 

    Je n'arrive pas à trouver la source du probleme.

    Merci de votre aide.

    Thierry




    -
    Edité par capricorne83 15 janvier 2022 à 9:08:06

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2022 à 11:45:02

      "manuellement", la requête SQL finale fonctionne ? (en lançant la requête SQL directement) 

      sinon on remarque une différence au niveau des ddMM, entre guillemets dans la requête SQL et sans guillemets dans ClauseWhere

      • Partager sur Facebook
      • Partager sur Twitter

      Probleme Requete Access depuis VB.NET

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown