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

Requêtes et SQL. Discussion :

fonction sql


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Par défaut fonction sql
    salut

    J'ai deux fonctions l'une permettant la création d'une requête et l'autre sa suppression.
    or lorsque je veux créer ma requête la fonction me renvoie qu'elle existe déjà alors je souhaite la supprimer et la impossible de trouver la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub CreerRequete(Nom As String, SQL As String)
    Dim MaCom As New ADODB.Command
    Dim MCat As New ADOX.Catalog
    Set MCat.ActiveConnection = CurrentProject.Connection
    MaCom.CommandText = SQL
    MCat.Procedures.Append Nom, MaCom
    Set MCat = Nothing
    Set MaCom = Nothing
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub SupprimerRequete(Nom As String)
    On Error GoTo err
    Dim MCat As New ADOX.Catalog
    Set MCat.ActiveConnection = CurrentProject.Connection
    MCat.Procedures.Delete (Nom)
    Exit Sub
    err:
    If err.Number = 3265 Then MsgBox "Impossible de trouver la requête " & Nom & "!!!"
    End Sub
    D'où peut provenir mon pb.

    voici le programme principal

    [code]
    Sub Commande36_Click()
    On Error GoTo Err_Commande36_Click

    '--------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Dim connex As ADODB.Connection
    Dim recset As ADODB.Recordset
    Dim MonSQL As String
    Dim requete As String
    Dim strsortie As Integer
    Dim stDocName As String
    Dim variable As String

    MonSQL = "SELECT Count([change_control].[num_change])AS nb_date FROM change_control WHERE year([change_control].[date_demande])=" & Year(date_dem) & "And month([change_control].[date_demande])=" & Month(date_dem) & "And day([change_control].[date_demande])=" & Day(date_dem) & "And ([change_control].[num_atelier])='" & num_at & "';"
    Set connex = CurrentProject.Connection
    Set recset = New ADODB.Recordset
    recset.Open MonSQL, connex
    strsortie = recset.Fields("nb_date")
    If strsortie = 0 Then
    num_change = num_atelier & "/" & Year(date_dem) & "" & Month(date_dem) & "" & Day(date_dem) & "/"
    Else
    strsortie = strsortie + 1
    num_change = num_atelier & "/" & Year(date_dem) & "" & Month(date_dem) & "" & Day(date_dem) & "/" & strsortie
    End If
    recset.Close
    variable = num_change
    num_lot = Replace(num_lot, " ", "")
    connex.Close
    Set connex = Nothing
    Set recset = Nothing

    DoCmd.GoToRecord , , acNewRec
    MsgBox " Enregistrement du formulaire change control réussi avec succès !!!"

    '-------------- impression -----------------------------------------------------
    requete = "SELECT DISTINCTROW [change_control].[num_change], [change_control].[num_atelier], [change_control].[date_demande], [change_control].[nom_initiateur], [atelier].[nom_resp], [change_control].[nom_produit], [change_control].[code], [change_control].[num_lot], [change_control].[description], [change_control].[raison] FROM atelier INNER JOIN change_control ON [atelier].[num_atelier]=[change_control].[num_atelier] WHERE [change_control].[num_change]='" & variable & "';"
    CreerRequete "req_etat_change", requete

    stDocName = "etat_change_control"
    DoCmd.OpenReport stDocName, acPreview
    MsgBox " La demande de change control a bien été imprimée !!!"
    SupprimerRequete "req_etat_change"
    '-------------------------------------------------------------------------------

    Exit_Commande36_Click:
    Exit Sub

    Err_Commande36_Click:
    MsgBox err.description
    Resume Exit_Commande36_Click

    End Sub
    [/code]

    merci de votre aide.

  2. #2
    Membre éprouvé Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Vérifie déjà que le nom que tu veux donner à ta requête n'est pas un nom de table ou d'un objet autre qu'une requête qui serait déjà existant.

  3. #3
    Membre confirmé Avatar de greg64
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 154
    Par défaut
    non ce n'est pas le cas.

Discussions similaires

  1. creation d'une fonction SQL pour generer du XML
    Par MuldyMath dans le forum Oracle
    Réponses: 3
    Dernier message: 07/06/2006, 12h22
  2. Fonctions SQL - Tableau et type anyarray
    Par etiennegaloup dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/11/2005, 13h25
  3. Syntaxe de la fonction SQL month() ??
    Par merlubreizh dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/09/2005, 12h16
  4. [Fonction SQL Server] Convertir des secondes en heure
    Par falcon dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/11/2004, 18h22
  5. fonction sql "LIMIT" en interbase?
    Par GMI dans le forum InterBase
    Réponses: 6
    Dernier message: 20/09/2004, 15h04

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