Commentaires

  1. Avatar de MaximeCh
    • |
    • permalink
    merci
  2. Avatar de Patrick_Emmabuntus
    • |
    • permalink
    Nouvelle vidéo d'appel au don d'ordinateurs sur la Belgique :




    La version pour PeerTube sera mise ici : https://video.tedomum.net/video-chan...eemploi/videos
  3. Avatar de thtioxine
    • |
    • permalink
    Bonjour
    Comme dit dans mon billet, quitte à passer à sql autant le faire vraiment, la notion de table liée n'étant généralement pas une bonne idée car c'est toujours ACCESS qui gère.
    Ça ne coûte pas plus cher de faire de l'OLEDB et les gains en temps de réponse, quand c'est bien fait, sont faramineux.

    Ceci dit.
    Une table SQL se trouve systématiquement dans un schéma. Par défaut, le schéma est dbo, d'ou votre préfix.
    Quand vous reliez vos tables, celles-ci sont en effet préfixé par dbo, d'ou un nom du type dbo_xxxxx. Ne cherchez pas à vous en débarrasser du coté sql, ce n'est pas possible. Il faut le faire du coté MS ACCESS en renommant les tables. Voici un lien expliquant comment faire.

    https://www.microsoftaccessexpert.co...DBOPrefix.aspx

    Mais une fois de plus, prenez le temps de faire un rapide chiffrage d'un passage à SQL par OLEDB.

    A+



    Citation Envoyé par harpyopsis
    Bonjour Tioxine,

    Intéressant billet sur un sujet qui me donne mal à la tête depuis des semaines, alors que je suis complètement isolé pour tout faire. J'ai énormément de questions...

    Soit une BD Access 2007 de 320 tables, qui tourne depuis 5 ans.

    Quand je migre ces tables vers MS SQL Serveur avec Migration Assistant, je les retrouve affublées d'un préfixe "dbo."

    Comme ces tables sur Server vont être réimportées (liées) dans la même front-end Access d'origine, ce changement de noms impromptu ("Jarnicoton") va tout foutre en l'air !

    Je ne comprends pas si c'est Migr. Assist ou bien SSMS qui génère ce préfixe dbo.

    Est-il justifié, ou serait-ce une erreur, de s'en débarrasser immédiatement avant de s'occuper des PK-FK ???

    (OK, je viens de voir sur un forum anglais que dbo c'est "Data Base Owner", que c'est généré par SQL Server pour faciliter les recherches dans de très grosses DB, et que la grande majorité des programmeurs s'en débarrassent sans complexe)

    Comment faire ? Je suis complètement novice en SQL sur des objets avec MSSQL.

    Je viens de voir

    EXEC sp_rename

    et

    EXEC sp_MSforeachtable

    Comment créer et exécuter un loop avec ça dans SSMS ???

    Je suis au désespoir....

    Je viend de trouver ceci sur Stackoverflow, qu'en pensez-vous ???



    ............ Non, décidément aucun code SQL ne marche pour supprimer le préfixe dbo.... Je viens d'en essayer une demi-douzaine, alors que le temps presse tellement...

    .............Mais je viens de voir qu'il serait possible de le maintenir dans les tables su SQL Server, mais de renommer ces mêmes tables dans Access une fois reliées...

    Je ne sais que penser.....

    Merci pour votre éventuelle réponse !

    phil
  4. Avatar de MarcelG
    • |
    • permalink
    Salut Pierre,

    D'accord.
    Merci pour ces précisions.

    A plus tard.
  5. Avatar de MarcelG
    • |
    • permalink
    Salut Pierre,

    Ce que je voulais seulement mentionner.
    En suivant un de tes post sur le forum VBA, j'utilise Property Get pour définir une propriété de formulaire.
    Tandis qu'ici, sauf erreur, la propriété Result est déclarée en entête du module affecté au formulaire.


    Pour ce qui concerne le pilotage de formulaire à distance et l'utilisation d'une variable propriété, c'est le principe que j'adopte depuis nos échanges sur le Forum.
  6. Avatar de MarcelG
    • |
    • permalink
    Bonjour Pierre,

    En ce qui concerne la gestion des boutons d'options, voici les 2 développements, intégrés à la fonction Update, et soumis à ton jugement de grand maître
    (extrait du développement de mon applicatif)

    Le libellé affectant la cellule du tableau est lié à la propriété Caption du bouton

    Dans le sens Formulaire Tableau

    Propriété du formulaire

    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
    Property Get type_opération() As String
    
    Dim i As Byte
    i = 0
    
    Dim ctrl As MSForms.Control
    
    type_opération = ""
    
    Do While type_opération = "" And i < Me.Controls.Count
            Set ctrl = Me.Controls(i)
            With ctrl
                   If TypeName(ctrl) = "OptionButton" Then
                           If .GroupName = "Liste_Opt_Type" Then
                                   If .Value = True Then
                                           type_opération = .Caption
                                   End If
                            End If
                    End If
            End With
            Set ctrl = Nothing
            i = i + 1
    Loop
    
    End Property
    ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data(1, 11) = .type_opération 'Property décrite dans le module de l'Usf

    Dans le sens tableau structuré - formulaire, afin d'affecter la propriété True au bouton correspondant

    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
          typoper = Worksheets("Base").ListObjects("T_Base").ListColumns("Type de l'opération").DataBodyRange.Rows(lr.Index).Value
            i = 0
            
            Do While lebtn Is Nothing And i < .Controls.Count
                  Set ctrl = .Controls(i)
                  With ctrl
                         If TypeName(ctrl) = "OptionButton" Then
                                 If .GroupName = "Liste_Opt_Type" Then
                                         .Value = False
                                         If typoper <> "" and InStr(.Caption, typoper) > 0 Then
                                                 Set lebtn = ctrl
                                                 lebtn.Value = True
                                         End If
                                  End If
                          End If
                  End With
                  Set ctrl = Nothing
                  i = i + 1
            Loop
    A noter
    La variable lr (Listrrow) a une portée module afin d'en utiliser la propriété index pour le calcul tyoper
    Les boutons d'option sont affectés d'une propriété GroupName définie .

    Voilà.

    Au plaisir de te lire
    Mis à jour 14/09/2020 à 14h54 par MarcelG
  7. Avatar de Philippe Tulliez
    • |
    • permalink
    Bonjour,
    Sans connaître le numéro de l'erreur et le numéro de la ligne (que vous obtiendrez en mettant le code entre les balises), c'est diffiiciile de vous aider.
    Toutefois, je peux déjà vous indiquer que dans cette ligne vous avez omis de doubler les guillemets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "=SIERREUR(RECHERCHEV($U9;'M:\2-T\2-TO\2-Public\OUTILLAGE\PROJET_SERIE\EK_PROJECT\" & Projet & "\1-PLAN OUTIL\001-EN SERIE\[" & NWT & ".xlsm]DT PIECE'!$A$1:$T$999;14;FAUX);"")"
    Avez-vous lu mon billet suivant titré Comment écrire une formule plus complexe dans une cellule ? qui indique comment ne pas utiliser les guillemets mais des balises.

    Citation Envoyé par yanmin
    Bonjour, je suis novice dans le VBA, j'ai fait un petit programme pour la gestion d'une nomenclature, mais je n'arrive pas à écrire une formule dans mon fichier excel.
    Voici un bout du programme:

    If g = 4 Then
    Sheets("Nomenclature").Select
    REP = Cells(ActiveCell.Row, 6).Value

    Cells.Find(What:=REP).Activate
    Set res = Cells.Find(What:=REP, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    If res Is Nothing Then
    If MsgBox("REP INCONNUe", vbOKOnly, "Erreur") = vbOK Then
    Exit Sub
    End If
    Else
    Cells(ActiveCell.Row, 21).FormulaLocal = "=SIERREUR(RECHERCHEV($U9;'M:\2-T\2-TO\2-Public\OUTILLAGE\PROJET_SERIE\EK_PROJECT\" & Projet & "\1-PLAN OUTIL\001-EN SERIE\[" & NWT & ".xlsm]DT PIECE'!$A$1:$T$999;14;FAUX);"")"


    ActiveWorkbook.Save
    End If

    End If

    Mais si on enlève le "=" la formule s’insère correctement mais ne fonctionne pas du coup...
  8. Avatar de harpyopsis
    • |
    • permalink
    Bonjour Tioxine,

    Intéressant billet sur un sujet qui me donne mal à la tête depuis des semaines, alors que je suis complètement isolé pour tout faire. J'ai énormément de questions...

    Soit une BD Access 2007 de 320 tables, qui tourne depuis 5 ans.

    Quand je migre ces tables vers MS SQL Serveur avec Migration Assistant, je les retrouve affublées d'un préfixe "dbo."

    Comme ces tables sur Server vont être réimportées (liées) dans la même front-end Access d'origine, ce changement de noms impromptu ("Jarnicoton") va tout foutre en l'air !

    Je ne comprends pas si c'est Migr. Assist ou bien SSMS qui génère ce préfixe dbo.

    Est-il justifié, ou serait-ce une erreur, de s'en débarrasser immédiatement avant de s'occuper des PK-FK ???

    (OK, je viens de voir sur un forum anglais que dbo c'est "Data Base Owner", que c'est généré par SQL Server pour faciliter les recherches dans de très grosses DB, et que la grande majorité des programmeurs s'en débarrassent sans complexe)

    Comment faire ? Je suis complètement novice en SQL sur des objets avec MSSQL.

    Je viens de voir

    EXEC sp_rename

    et

    EXEC sp_MSforeachtable

    Comment créer et exécuter un loop avec ça dans SSMS ???

    Je suis au désespoir....

    Je viend de trouver ceci sur Stackoverflow, qu'en pensez-vous ???

    declare @oq nvarchar(max) = N'prefix_'
    declare @cmd nvarchar(max)
    select @cmd = a from (
    select 'EXEC sp_rename ''' + TABLE_NAME + ''', ''' + REPLACE(TABLE_NAME, @oq, N'') + ''' '
    from INFORMATION_SCHEMA.TABLES
    for xml path('')
    ) t(a)
    exec sp_executesql @cmd
    ............ Non, décidément aucun code SQL ne marche pour supprimer le préfixe dbo.... Je viens d'en essayer une demi-douzaine, alors que le temps presse tellement...

    .............Mais je viens de voir qu'il serait possible de le maintenir dans les tables su SQL Server, mais de renommer ces mêmes tables dans Access une fois reliées...

    Je ne sais que penser.....

    Merci pour votre éventuelle réponse !

    phil
    Mis à jour 11/09/2020 à 11h11 par harpyopsis
  9. Avatar de MarcelG
    • |
    • permalink
    Salut Pierre,

    En adaptant ce code, j'en ai constaté la souplesse.

    En effet, l'ajout d'un enregistrement ne pose pas de problème. La variable Data retourne alors des valeurs vides.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Alim_données(Optional numcnt As Long)
    
    Dim lr As ListRow
    Dim Data
    
    If numcnt = 0 Then
            Set lr = Worksheets("Base").Range("T_Base").ListObject.ListRows.Add
    Else
            Set lr = getRow(numcnt)
    End If
    Il me reste à gérer les boutons d'option de mon formulaire.
    Sans doute en y affectant une "Property", ou bien une fonction dans le module standard Data(1,15) = Fn(Data(1,10))
    En cas de problème, j'ouvrirai une discussion sur le Forum.

    En tout cas, merci et à bientôt.
    Mis à jour 14/09/2020 à 13h04 par MarcelG
  10. Avatar de Quezako2016
    • |
    • permalink
    Citation Envoyé par LittleWhite
    Possible que cela se passe mieux pour la clé USB, car le contrôleur réparti les données sur la clé (pour répartir l'usure). J'imagine que ce n'est pas le cas pour un disque dur (et votre billet de blog semble le confirmer).
    Aussi, j'ai fait la supposition qu'il était possible que vos tâches sont liés à de la vidéo surveillance. Il existe aussi des disques plateaux pour ce genre d'usage (bien sûr, à des prix et caractéristiques différentes des disques normaux ).
    Effectivement mais sur un espace de seulement 64 go et vu l'utilisation intensif que je fais, la cle usb n'aurait pas du resister aussi longtemps. mais c'est le cas, je vais voir jusqu'ou ca va aller. a noter que la cle est de marque sandisk et qu'avant de la reserver a ces taches, je l'ai egallement utilise intensivement pour la lecture de video sur ecran tv.

    non il ne s'agit pas de video surveillance, j'aurais plutot opte pour un Raspberry Pi dans ce cas. disons que j'ai une utilisation hors norme...

    cela dit, les constructeurs sont a l'evidence au courant des limites de leurs materiels, j'ai remarque que les disques durs tombent en panne juste apres la fin de la garantie. ils testent et adaptent probablement la garantie en fonction du resultas d'un test intensif. mon nouveau disque dur de 2 to (2.5) a une garantie de 3 ans. pour le stockage il y'aura de la marge. j'evite desormais d'acheter les disques durs qui ont une garantie de 1 a 2 ans.
  11. Avatar de LittleWhite
    • |
    • permalink
    Possible que cela se passe mieux pour la clé USB, car le contrôleur réparti les données sur la clé (pour répartir l'usure). J'imagine que ce n'est pas le cas pour un disque dur (et votre billet de blog semble le confirmer).
    Aussi, j'ai fait la supposition qu'il était possible que vos tâches sont liés à de la vidéo surveillance. Il existe aussi des disques plateaux pour ce genre d'usage (bien sûr, à des prix et caractéristiques différentes des disques normaux ).
  12. Avatar de Quezako2016
    • |
    • permalink
    c'est ce que je croyais aussi. vu le prix des cles usb actuellement et si la cle que j'utilise resiste encore 7 mois, alors ca devient rentable. pour le reste, si je garde l'ordinateur allume, c'est qu'effectivement il y'a differentes taches qui tourne 24h sur 24 et les ecritures sont constantes. je confirme. sinon j'aurais mis le systeme en veille. a ce propos, ca a ete amusant de constater que la mise en veille avec kde neon fonctionne mieux qu'avec win 7.
  13. Avatar de LittleWhite
    • |
    • permalink
    Pourtant, je croyais que les mémoires NAND des clés USB avaient une usure supérieure à celles des disques.
    Après, même allumé, un PC n'est pas sensé écrire sur le disque si l'utilisateur ne l'utilise pas. Donc j'imagine que vous avez une tâche qui tourne 24/24 et qui écrit donc à fond sur le disque ?
    Il faudrait savoir combien de données sont écrites par jour, car les constructeurs fournissent des spécifications sur la longévité des disques.
  14. Avatar de Quezako2016
    • |
    • permalink
    Citation Envoyé par LittleWhite
    Bonjour,

    Intéressant !
    Avez-vous étudier la piste d'utiliser un disque pour NAS (qui sont prévus pour fonctionner 24h sur 24, 7j sur 7 ?

    Autrement, ne pensez-vous pas que cela a pu être lié avec une mise à jour du système et que le disque est par conséquent moins stressé ?
    Bonjour,

    c'est vrai que ce genre de disque est utilisable 24h sur 24 mais c'est egallement plus cher. avant d'appliquer cette astuce, le probleme se produisait systematiquement apres un usage intensif d'une annee et ce avec differentes version de windows et differentes marques de disque dur (format 2.5 et 1To). a noter que mon ordinateur portable est pratiquement presque toujours allume...

    maintenant que j'utilise linux avec un ssd pour le systeme et un disque dur pour les donnees, j'experimente une autre methode pour les telechargements ou encodages de videos sources de nombreuses ecritures disques pendant de longues durees. je me suis procure une cle usb 64 go (actuellement pas cher) et je l'utilise pour ce genre de tache. a ma grande surprise, la cle usb tient le coup depuis maintenant environ 7 mois...
  15. Avatar de LittleWhite
    • |
    • permalink
    Bonjour,

    Intéressant !
    Avez-vous étudier la piste d'utiliser un disque pour NAS (qui sont prévus pour fonctionner 24h sur 24, 7j sur 7 ?

    Autrement, ne pensez-vous pas que cela a pu être lié avec une mise à jour du système et que le disque est par conséquent moins stressé ?
  16. Avatar de Quezako2016
    • |
    • permalink
    Juste pour afficher ce post important section commentaires...
  17. Avatar de Quezako2016
    • |
    • permalink
    Juste pour afficher ce post principal section commentaires...