title: VBA Form.Move method (Access) - Not working for Split Forms
body: <p>Form.Move Method is not working for Split Forms</p>
  
  <p>In my MS Access 2016 database, I have a lot of forms that open in dialog mode.  The main Access window has no tabs.  The main window displays one form and sometimes changes sizes when going to a different main form.  The dialog style forms popup relative to the main window.</p>
  
  <p>I use the Form.Move method to position and resize the forms relative to the location of the Access Main Application Window.  The Move method works great!  However, the move method seems to do nothing for Split forms.</p>
  
  <p>I have also tried docmd.movesize since it does move and size split forms.  It also works great, except that, in my situation, docmd.movesize positions the form relative to the Main Monitor's Top-Left corner and cannot use negative numbers.  By "Main Monitor" i mean the monitor that is setup as the Main Monitor in Windows display settings.</p>
  
  <pre><code>DoCmd.MoveSize( _Right_, _Down_, _Width_, _Height_ )
  </code></pre>
  
  <p>Some of the users of my database use 3 monitors.  They use their laptop as their main monitor and have it position below their two bigger monitors.  Any of the desktop real estate above their laptop has negative "<em>Down</em>" location values as a paramater for DoCmd.MoveSize to apply.  The Form.Move method handles negative locations wonderfully, but it isn't working for my Split Forms.  For me, the DoCmd.MoveSize causes an error when using negative values.
  The "<em>Right</em>" value could also be negative when the main monitor is position between the two bigger monitors.</p>
  
  <p>Here are my current form settings.  I am pretty sure I have tried every combination.</p>
  
  <pre><code>Pop Up = No
  Modal = No
  Default View = Split Form
  Auto Center = Yes
  Auto Resize = No
  Fit to Screen = Yes
  Border Style = Sizeable
  </code></pre>
  
  <p>The forms are opened with this code which overrides some of the setting above.</p>
  
  <pre><code>DoCmd.OpenForm "frmWorkGroupList", , , , , acDialog
  </code></pre>
  
  <p>Form Size code</p>
  
  <pre><code>DoCmd.MoveSize xPosMax, yPosMax, vWidth, vHeight
  Me.Move Left:=xPosMax, Top:=yShiftTwips, Width:=vWidth, Height:=vHeight
  </code></pre>
  
  <p>I have searched for a good solution for many hours and I have tried everything I can think of.  The only solution I can find online was to re-create my forms into sub-forms inside of main forms to simulate a split form.  I don't wan to do that.  I want Split Forms to work if possible.</p>
  
  <p>Currently I am using DoCmd.MoveSize with a check for negative values.  If there are any negative values for x and/or y I move to a default x and y location that will land on the main monitor.</p>
  
  <p>Are there any solutions that will Move/Size Split Forms to desktop locations that have negative "<em>Down</em>" location values?  </p>
  
  <p>Thank all of you in advance!</p>
  
  <p>Buddy Martin</p>