IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Code d'erreur 3078


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut Code d'erreur 3078
    Bonjour,

    Je code une procédure qui me permet de récupérer des résultats dans la base de données. Voici le code que j'utilise :

    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
    40
    41
    42
    43
    44
    45
     
        Private Sub RecupResult(ByRef Resultat As DataTable, ByVal SemDate As Date)
            Debug.Print("Début de requête : " & System.DateTime.Now.ToLongTimeString & ":" & System.DateTime.Now.Millisecond)
            Dim sSQL As String
            Dim rs As New Recordset
            Dim Adapt As New OleDbDataAdapter
     
            'Pour i variant sur toute la semaine courante
            For I As Integer = -SemDate.DayOfWeek + 1 To -SemDate.DayOfWeek + 5
                'On récupère (pour chaque département) le nombre de valeur ajoutée à 1 pour le jour donné
                sSQL = "SELECT "
                For j As Integer = 1 To DGV_STATUS.Columns.Count - 1
                    If j = DGV_STATUS.Columns.Count - 1 Then
                        sSQL += "COUNT(R" & j & "1" & ".RES_NoRes), COUNT (R" & j & "2" & ".RES_NoRes) "
                    Else
                        sSQL += "COUNT(R" & j & "1" & ".RES_NoRes), COUNT (R" & j & "2" & ".RES_NoRes), "
                    End If
                Next
                sSQL += "FROM "
                For j As Integer = 1 To DGV_STATUS.Columns.Count - 1
                    If j = DGV_STATUS.Columns.Count - 1 Then
                        sSQL += "RESULTAT R" & j & "1, RESULTAT R" & j & "2" & ", EMPLOYE E" & j & "1, EMPLOYE E" & j & "2 "
                    Else
                        sSQL += "RESULTAT R" & j & "1, RESULTAT R" & j & "2" & ", EMPLOYE E" & j & "1, EMPLOYE E" & j & "2, "
                    End If
                Next
                sSQL += "WHERE "
                For j As Integer = 1 To DGV_STATUS.Columns.Count - 1
                    If j = DGV_STATUS.Columns.Count - 1 Then
                        sSQL += "R" & j & "1" & ".RES_NoEmp = E" & j & "1.EMP_NoEmp" & " AND E" & j & "1.EMP_NumDep = " & DGV_STATUS.Columns(j).ToolTipText & " AND FORMAT(R" & j & "1" & ".RES_DateRes, ""yyyy/mm/dd"") LIKE '" & SemDate.AddDays(I).ToString("yyyy/MM/dd") & "' AND R" & j & "1" & ".RES_IsVA = 1 AND " & _
                                "R" & j & "2" & ".RES_NoEmp = E" & j & "2.EMP_NoEmp" & " AND E" & j & "2.EMP_NumDep = " & DGV_STATUS.Columns(j).ToolTipText & " AND FORMAT(R" & j & "1" & ".RES_DateRes, ""yyyy/mm/dd"") LIKE '" & SemDate.AddDays(I).ToString("yyyy/MM/dd") & "'"
                    Else
                        sSQL += "R" & j & "1" & ".RES_NoEmp = E" & j & "1.EMP_NoEmp" & " AND E" & j & "1.EMP_NumDep = " & DGV_STATUS.Columns(j).ToolTipText & " AND FORMAT(R" & j & "1" & ".RES_DateRes, ""yyyy/mm/dd"") LIKE '" & SemDate.AddDays(I).ToString("yyyy/MM/dd") & "' AND R" & j & "1" & ".RES_IsVA = 1 AND " & _
                                "R" & j & "2" & ".RES_NoEmp = E" & j & "2.EMP_NoEmp" & " AND E" & j & "2.EMP_NumDep = " & DGV_STATUS.Columns(j).ToolTipText & " AND FORMAT(R" & j & "1" & ".RES_DateRes, ""yyyy/mm/dd"") LIKE '" & SemDate.AddDays(I).ToString("yyyy/MM/dd") & "' AND "
                    End If
                Next
     
                Debug.Print(sSQL)
     
                rs.Open(sSQL, conn, CursorTypeEnum.adOpenStatic, LockTypeEnum.adLockReadOnly, -1)
                Adapt.Fill(Resultat, rs)
                rs.Close()
            Next
            Debug.Print("Fin de requête : " & System.DateTime.Now.ToLongTimeString & ":" & System.DateTime.Now.Millisecond)
        End Sub
    Malheureusement, je reçois un message d'erreur lors de l'execution. J'ai pu localiser le message comme venant de la fonction rs.Open() lors du premier passage dans la boucle englobante. Voici le message d'erreur :

    [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'RESULTAT'. Assurez-vous qu'elle existe et qu'elle est correctement orthographiée.
    Ce que je ne comprends pas et qui est surprenant c'est que quand je copie ma requête (que j'ai affiché grâve au Debug.Print()), et que je l'exécute directement dans Access, tout fonctionne parfaitement...

    Pouvez-vous m'éclairer ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    recordset en .net ?? tu t'es trompé de décennie je crois
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Que dois-je utiliser alors ?

    Par ailleurs, j'ai réussi à résoudre mon problème maintenant, j'en ai un autre.
    J'ai un message d'erreur quand j’exécute la requête qui est "trop peu de paramètres, 1 attendu" or la requête fonctionne parfaitement quand je la copie dans Access...

  4. #4
    Membre actif Avatar de 2h15Crew
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Il y avait une erreur de syntaxe au niveau du formatage de la date... Va savoir pourquoi ça marchait dans Access...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intercepter les codes d'erreurs Interbase
    Par tintin22 dans le forum InterBase
    Réponses: 1
    Dernier message: 14/06/2005, 21h31
  2. [sqlplus] code d'erreur
    Par jean-jacques varvenne dans le forum Oracle
    Réponses: 6
    Dernier message: 25/01/2005, 07h47
  3. Redirection et code d'erreur.
    Par ggnore dans le forum Linux
    Réponses: 4
    Dernier message: 08/11/2004, 10h25
  4. Codes d'erreurs des exceptions
    Par dway dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/09/2004, 09h37
  5. [Oracle][ADO_QRY] Récupérer le code d'erreur
    Par Cryonie dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo