none
Action pas disponible pour l'instant RRS feed

  • Discussion générale

  • Bonjour,

    J'aimerais savoir pourquoi lorsque je sélectionne un enregistrement (ligne entière) et copie manuellement dans une autre table tout fonctionne.

    Par contre, si j'utilise une macro ou un code VBA, j'obtiens le message suivant:

    * La commande ou l'action, sélectionner ligne entière n'est pas disponible pour l'instant, vous êtes peut-être dans une base de données en lecture seule, ou une base de données non convertie d'une version antérieure à Auto-Caisse 2011

    * Le type d'objet auquel s'applique l'action n'est pas sélectionné actuellement ou ne se trouve pas dans le mode activé

    N'utilisez que les commandes ou les actions qui sont actuellement accessibles pour cette base de données.

    Ensuite le pas à pas :

    Interne - Sous-formulaire Commandes actives pour paiement : Company : OnDblClick : Macro incorporée

    Nom de l'action:

    ExécuterCommandeMenu

    Arguments:

    570

    Numéro de l'erreur:

    2950

    Ceci était pour la macro incorporée, maintenant j'ai essayé avec le VBA, voici le code:

     

    Private Sub Order_ID_DblClick(Cancel As Integer)
    SélectionnerLigneCouperColler
    End Sub

     

    Voici cette macro convertie:

     

    Option Compare Database
    
    Function SélectionnerLigneCouperColler()
    On Error GoTo SélectionnerLigneCouperColler_Err
    
      DoCmd.OpenForm "CommandesPourAdditions", acNormal, "", "", , acNormal
      DoCmd.RunCommand acCmdSelectEntireRow
      DoCmd.RunCommand acCmdCut
      DoCmd.GoToRecord acForm, "CommandesPourAdditions", acNext
      DoCmd.RunCommand acCmdPaste
    
    
    SélectionnerLigneCouperColler_Exit:
      Exit Function
    
    SélectionnerLigneCouperColler_Err:
      MsgBox Error$
      Resume SélectionnerLigneCouperColler_Exit
    
    End Function
    

     

    Que j'utilise la commande acCmdCut ou acCmdCopy, c'est le même message:

    Message: La commande ou l'action "SélectionnerLigneEntière" n'est pas disponible pour l'instant.

    Ce que je saisi mal c'est que si je presse le bouton droit de la souris, je vois bien que la commande Couper n'est pas disponible, cependant, je peux sélectionner la ligne, copier et coller ou bon me semble.

    De plus, après avoir lu que c'était peut-être relié aux emplacements approuvés, j'ai vérifié et mon répertoire ou se trouve ma base de données est bien dans cet endroit.

    J'avais débuté cette base de données avec 2007 et j'utilise maintenant 2010, comment faire pour que tout soit disponible, c'est frustrant de voir que ce que tu veux faire se fait, mais pas pour moi.

    Merci


    Claude Larocque
    mercredi 11 mai 2011 21:17

Toutes les réponses

  • Bonjour,

    Je vous suggère d'exploiter la méthode Execute comme vue dans d'autre réponses de vos différents messages :

    Private Function CopyRecordToTable(ByVal IDRecord As Variant, ByVal IDPKName As String, ByVal TableFrom As String, ByVal TableTo As String)
    Dim SQL                           As String
    
      On Error GoTo ErrorCopy
      SQL = "INSERT INTO [" & TableTo & "] SELECT * FROM [" & TableFrom & "] WHERE [" & IDPKName & "] = " & IDRecord & ";"
      CurrentDb.Execute SQL, dbFailOnError
      On Error GoTo 0
    ExitCopy:
      Exit Function
    ErrorCopy:
      MsgBox Err.Description, 48, Err.Source
      Resume ExitCopy
    End Function
    
    

    Voici comment l'utiliser :

    Sub Tester()
      CopyRecordToTable 10252, "N° commande", "Détails commandes", "Détails commandes Copie"
    End Sub
    
    

    Argy
    jeudi 12 mai 2011 10:52
    Modérateur
  • Merci Argy,

     

    Je vais tester sur le champ, en passant, j'ai affiché un problème hier regardant mon émulation d'un tableau noir pour menu, est-ce que tu pourrais y jeter un coup d'oeil, je crois que tu pourrais trouver la solution rapidement.

    C'est intitulé: Attaché bouton de commande1 au 1er record d'un sous-formulaire, puis le 2e bouton de commande au 2e record et le 3e... Merci et bonne journée!


    Claude Larocque
    jeudi 12 mai 2011 11:05
  • Bonjour,

    J'ai placé ce code sur le double-clic de mon sous-formulaire:

    Private Sub Company_DblClick(Cancel As Integer)
    CopyRecordToTable CommandesPourAdditions, "Order ID", "Order Date", "Status ID", "Company"
    End Sub
    
    Private Function CopyRecordToTable(ByVal IDRecord As Variant, ByVal IDPKName As String, ByVal TableFrom As String, ByVal TableTo As String)
    Dim SQL As String
    
     On Error GoTo ErrorCopy
     SQL = "INSERT INTO [" & TableTo & "] SELECT * FROM [" & TableFrom & "] WHERE [" & IDPKName & "] = " & IDRecord & ";"
     CurrentDb.Execute SQL, dbFailOnError
     On Error GoTo 0
    ExitCopy:
     Exit Function
    ErrorCopy:
     MsgBox Err.Description, 48, Err.Source
     Resume ExitCopy
    End Function
    

    Et voici l'erreur que j'ai reçu, nombre d'arguments incorrects ou affectation de propriété incorrecte, je me demandais si ce n'est pas parce que je n'ai pas de ID comme tel dans la table CommandesPourAdditions

    Merci

     

     


    Claude Larocque
    jeudi 12 mai 2011 11:25
  • S'il n'y a pas d'ID il faut trouver une condition WHERE idoine.

    J'ai pris l'ID pour être sûr de "matcher".

    Bref, vous pouvez modifier la fonction de manière à ce que les paramètres IDRecord et IDPKName soient dès lors WhereCondition

    Private Function CopyRecordToTableA(ByVal WhereCondition As String, ByVal TableFrom As String, ByVal TableTo As String)
    Dim SQL                           As String
    
      On Error GoTo ErrorCopy
      SQL = "INSERT INTO [" & TableTo & "] SELECT * FROM [" & TableFrom & "] WHERE " & WhereCondition & ";"
      CurrentDb.Execute SQL, dbFailOnError
      CopyRecordToTable = True
      On Error GoTo 0
    ExitCopy:
      Exit Function
    ErrorCopy:
      CopyRecordToTable = False
      Resume ExitCopy
    End Function
    
    

    Il vous appartient alors de placer à cet endroit la condition correspondante sous la forme :

    [Champ]='ValeurChaîne'
    ou [Champ]=ValeurNum
    ou [Champ]=#ValeurDate mm/dd/yyyy#

     

     


    Argy
    jeudi 12 mai 2011 13:28
    Modérateur
  • Merci Argy,

    J'ai pu arriver à mon but grâce à tes conseils, j'ai joué un peu avec le code, mais çà fonctionne, alors c'est parfait!

    Bonne journée

     


    Claude Larocque
    jeudi 12 mai 2011 18:50