msaccess-vcs-addin icon indicating copy to clipboard operation
msaccess-vcs-addin copied to clipboard

Export roundtrip adds noise

Open HughWarrington opened this issue 11 months ago • 4 comments
trafficstars

Plugin version 4.0.34.

These were my basic steps:

  1. Take my .mdb and do a full export.
  2. Use Build As... to build a new .mdb from the export in step 1.
  3. Do a full export of the .mdb from step 2.
  4. Compare the exports from step 1 and step 3.

All the steps were performed on the same computer and the same installation of Access 365. Although it's possible they weren't the exact same Access version due to auto updates in the couple of months which passed between the steps.

I would expect the export folders from 1 and 3 to be identical. However there are hundreds of changed files. The good news is that there are only a handful of kinds of difference.

  1. In forms/*.bas, many controls have added BorderLineStyle = 0. For example:
        Begin TextBox
            FELineBreak = NotDefault
            SpecialEffect =2
            OldBorderStyle =0
+           BorderLineStyle =0
            Width =1701
            LabelX =-1701
            FontName ="Tahoma"
        End
  1. In forms/*.bas, a few forms have added OrderByOn = NotDefault. For example:
Version =19
VersionRequired =19
Begin Form
+   OrderByOn = NotDefault
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridY =10
[...]
  1. In several .cls files, Now() has been replaced with now().

  2. About 5% of queries/*.sql have whitespace changes in JOIN clauses:

SELECT
  Qstatus.SubjID,
  Qstatus.Qid,
  Qstatus.Qstatus,
  AnsNumeric.Ans
FROM
  QsFullCurrent
  INNER JOIN (
    Qstatus
-    INNER JOIN AnsNumeric ON (Qstatus.Qid = AnsNumeric.Qid)
-    AND (
-      Qstatus.SubjID = AnsNumeric.SubjID
-    )
+    INNER JOIN AnsNumeric ON (
+      Qstatus.SubjID = AnsNumeric.SubjID
+    )
+    AND (Qstatus.Qid = AnsNumeric.Qid)
  ) ON QsFullCurrent.Qid = Qstatus.Qid
WHERE
  Qstatus.Qstatus = 0
  AND IsNull(AnsNumeric.Ans)
  AND QsFullCurrent.IsCurrent;
  1. About 5% of queries/*.sql have lost a couple of lines at the end concerning 'dbText Name' which I don't yet know the meaning of:
dbMemo "SQL" ="SELECT ThreadQids.ThreadFgnID, ThreadQids.QFgnID, [Qids+FullOrder+Text].Qtext, T"
    "hreadQids.IsAdded, QnumStrForLog(ThreadQids.QFgnID) AS QNumStr\015\012FROM [Qids"
    "+FullOrder+Text] RIGHT JOIN ThreadQids ON [Qids+FullOrder+Text].Qid=ThreadQids.Q"
    "FgnID\015\012WHERE IsCurrent\015\012ORDER BY [SectOrder], [SubSectOrder], [Qorde"
    "r];\015\012"
dbMemo "Connect" =""
dbBoolean "ReturnsRecords" ="-1"
dbInteger "ODBCTimeout" ="60"
dbBoolean "OrderByOn" ="0"
dbByte "Orientation" ="0"
dbByte "RecordsetType" ="0"
dbText "Description" ="Threads Logger: used by subform frm_QsOfThread"
Begin
-    Begin
-        dbText "Name" ="QNumStr"
-    End
End

I suspect that these changes don't alter the behaviour in any way, but in my current job it's crucial that the behaviour of the database stays exactly the same. I can try to verify that this is the case for each of the changes but it's prohibitive if this kind of churn could happen in future every time I make an actual change.

Any tips?

HughWarrington avatar Nov 25 '24 18:11 HughWarrington