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

Access Discussion :

Soucis avec sous formulaires après migration tables vers sql server


Sujet :

Access

  1. #1
    Invité
    Invité(e)
    Par défaut Soucis avec sous formulaires après migration tables vers sql server
    Bonjour,

    Dans une application Access, j'ai migrer toutes les tables locales vers SQL SERVER.
    Je suis dans un formulaire qui fait appel à un sous formulaire, ce sous formulaire se nomme "SF Mise à jour rep"

    Quand je veux exécuter le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub SF_Mise_à_jour_rep_Enter()
    If IsNull([Champ41]) Or Trim([Champ41]) = "" Then
        MsgBox "Veuillez saisir un client!!!!", vbExclamation, "AVERTISSEMENT!!!!"
        [Champ41].SetFocus
    Else
        If IsNull([AdrFact]) Or Trim([AdrFact]) = "" Then
            MsgBox "Veuillez saisir l'adresse de facturation!!!!", vbExclamation, "AVERTISSEMENT!!!!"
            [AdrFact].SetFocus
        Else
            Champ41_Change
            Me.Form![SF Mise à jour rep].Form![CodeAffaire] = Me![CodeAffaire]
        End If
    End If
    End Sub
    ne fonctionne plus, la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Form![SF Mise à jour rep].Form![CodeAffaire] = Me![CodeAffaire]
    Provoque l'erreur
    Erreur d'éxécution 3326. Impossible de mettre à jour Recordset
    Dans la ligne de code en erreur, j'essaye de mettre à jour un champ "zone de texte" par un autre champ "zone de texte", dans mon cas, Me![CodeAffaire] a la valeur R100203

    De plus, quand j'ouvre le formulaire principal en mode création, mon sous formulaire ne s'affiche pas, quand je clique dessus, le message d'erreur suivant s'affiche :
    Le moteur de base de données Microsoft Office Access ne peut pas trouver d'enregistrements dans la table "CLIENTS" avec le(s) champ(s) "NumClient" correspondant à la clé
    .

    Au départ, le champ "NumClient" avait pour nom "N°Client" qui est de type clé primaire.

    Le code du bouton qui ouvre le formulaire en mode création est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DoCmd.OpenForm "Mise à jour réparation", windowmode:=acWindowNormal
     DoCmd.GoToRecord acDataForm, "Mise à jour réparation", acNewRec
     CodeAff Me![TypeAff]
     Forms("Mise à jour réparation")![Entrep1] = ""
     Forms("Mise à jour réparation")![Entrep2] = ""
     Forms("Mise à jour réparation")![Commande227].Visible = True
     Forms("Mise à jour réparation")![Commande229].Visible = False
     Forms("Mise à jour réparation")![BoutAnnul].Visible = True
     Forms("Mise à jour réparation")![BoutFerm].Visible = False
     DoCmd.Close acForm, Me.Name, acSaveNo
     Forms("Mise à jour réparation").Modal = True
    Auriez-vous des idées de résolution? Ne maitrisant pas Office Access, je tourne en rond.

    Merci

    Edit : on mettant comme type de recorset "Feuille rép.dyn.(MAJ globale)" sur le formulaire principal et sur les sous formulaires, le problème de recordset persiste encore :/
    Dernière modification par Invité ; 11/10/2016 à 15h25.

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Lorsqu'un formulaire (avec sous-formulaire) sont basés sur une table ou sur plusieurs tables liées, il arrive que ces tabes soient bloquées (non-updatable) et fermées à tout changement par mesure de sécurité. Il faudra utiliser des déviations en basant les formulaires sur des requêtes par exemple ou autre artifice.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Lorsqu'un formulaire (avec sous-formulaire) sont basés sur une table ou sur plusieurs tables liées, il arrive que ces tabes soient bloquées (non-updatable) et fermées à tout changement par mesure de sécurité. Il faudra utiliser des déviations en basant les formulaires sur des requêtes par exemple ou autre artifice.
    Par exemple, on remplissant le formulaire entièrement par programmation et non depuis l'IHM?

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Bonjour,
    Comment opères-tu ?
    As-tu bien une clé primaire dans chaque table SqlServer ?
    Tu as lié tes tables SqlServer à ta base Access via ODBC ?
    Peux-tu modifier chaque table directement dans les tables liées ? idem pour les requêtes sources du form et sous-form ?

    Cdlt

  5. #5
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Les questions de micniv te mettront sur le bon chemin (c'est à cela que je faisais allusion de façon indirecte ou naïve)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par micniv Voir le message
    Bonjour,
    Comment opères-tu ?
    As-tu bien une clé primaire dans chaque table SqlServer ?
    Tu as lié tes tables SqlServer à ta base Access via ODBC ?
    Peux-tu modifier chaque table directement dans les tables liées ? idem pour les requêtes sources du form et sous-form ?

    Cdlt
    Bonjour,

    Le formulaire principal se charge à l'aide d'une requête dans l'IHM (dans les propriétés, dans l'onglet Données, le champ Source est renseigné), j'ai mis comme type de recordset "Feuille rép. dyn. (MAJ globale)".

    La requête exécutée pour remplir mon formulaire fait appel à 2 tables, ayant toutes les 2 une clé primaire, j'ai pu insérer manuellement une nouvelle valeur.
    Mon sous formulaire fait lui aussi appel à une requête dans l'IHM, les tables ne sont pas les mêmes. J'ai voulu insérer une nouvelle valeur manuellement, et là, je me rend compte que l'une d'elles est comme verrouillée, l'insertion, la mise à jour et la suppression d'un enregistrement est tout simplement impossible depuis Access, depuis SQL Server, cela est possible.

    Cependant, je ne sais pas trop ce que j'ai fait, désormais, il m'est devenu impossible de pouvoir ouvrir le développement Access, j'ai ce message d'erreur qui s'affiche :
    Vous n'avez pas l'autorisation requise pour utiliser l'objet "C:\Users\...\reparation-ap.mdb". Demandez l'autorisation requise à votre administrateur système ou à la personne ayant créée cet objet
    Après avoir jeté un œil dans ce sujet de discussion, je me rends compte que quand j'essaye d'ouvrir ce projet Access, le fichier .ldb correspondant ne se créée pas du tout, alors que sur un autre projet, le fichier .ldb se créée bien...

    @Zekraoui_Jakani : est-ce que ma proposition de solution de tout à l'heure est un moyen idéal pour résoudre le problème dont j'ai évoqué?

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Alors vérifie que tu as les droits d'écriture (création, modification, suppression de fichier) dans le répertoire qui contient ta base Access ...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par micniv Voir le message
    Alors vérifie que tu as les droits d'écriture (création, modification, suppression de fichier) dans le répertoire qui contient ta base Access ...
    je n'ai plus aucune base Access, toutes les tables ont été migrées sous sql server

  9. #9
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Avant d'ouvrir Access, il faut localiser et supprimer tous les fichiers ".ldb" que tu trouves sur ton ordi (en cas de doute, prends en copie et changer l'extension en 'old' par exemple); puis ouvrir ta DB en mode "exclusif".

  10. #10
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    je n'ai plus aucune base Access, toutes les tables ont été migrées sous sql server ...
    Ton "projet" Access est aussi une base Access !

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Avant d'ouvrir Access, il faut localiser et supprimer tous les fichiers ".ldb" que tu trouves sur ton ordi (en cas de doute, prends en copie et changer l'extension en 'old' par exemple); puis ouvrir ta DB en mode "exclusif".
    Je n'ai pas de .ldb correspondant :
    Citation Envoyé par romulus001
    Après avoir jeté un œil dans ce sujet de discussion, je me rends compte que quand j'essaye d'ouvrir ce projet Access, le fichier .ldb correspondant ne se créée pas du tout, alors que sur un autre projet, le fichier .ldb se créée bien...

Discussions similaires

  1. migration access vers sql-Server
    Par fleuredumonde dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/05/2007, 15h16
  2. Migration PostGreSql vers SQL Server
    Par ZeMomoDesBois dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/11/2006, 07h43
  3. Migration MySQL vers SQL Server
    Par aemag dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/11/2006, 16h35
  4. [Migration] Oracle vers SQL Server 2005 - Problème de BLOB
    Par thomasrenault dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/02/2006, 10h26
  5. Migration HyperFile vers SQL SERVER
    Par mathll65 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/03/2004, 09h57

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