2011/06/18

access2010 Webデータベース その71 WeekDay関数の代替

** Office365beta(プランP1) 環境 **  
WebマクロでWeekDay関数がなかったので代替を。


Webデータベースで扱う日付は1900/01/01以降だから範囲外になる日付については処理をしない方針で。日曜日→土曜日で1→7

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application">
  <UserInterfaceMacro For="cmdWeekDay" Event="OnClick">
    <Statements>
      <ConditionalBlock>
        <If>
          <Condition>[txtDateTime]&lt;2</Condition>
          <Statements>
            <Action Collapsed="true" Name="SetLocalVar">
              <Argument Name="Name">varWeekday</Argument>
              <Argument Name="Expression">0</Argument>
            </Action>
          </Statements>
        </If>
        <Else>
          <Statements>
            <Action Collapsed="true" Name="SetLocalVar">
              <Argument Name="Name">varDT</Argument>
              <Argument Name="Expression">CDbl(FormatNumber([txtDateTime]-0.5,0,-1,0,0))</Argument>
            </Action>
            <Action Collapsed="true" Name="SetLocalVar">
              <Argument Name="Name">varDiv7</Argument>
              <Argument Name="Expression">([LocalVars]![varDT]-1)/7</Argument>
            </Action>
            <Action Collapsed="true" Name="SetLocalVar">
              <Argument Name="Name">varWeekday</Argument>
              <Argument Name="Expression">[LocalVars]![varDT]-CDbl(FormatNumber([LocalVars]![varDiv7]-0.5,0,-1,0,0))*7</Argument>
            </Action>
          </Statements>
        </Else>
      </ConditionalBlock>
      <Action Collapsed="true" Name="SetProperty">
        <Argument Name="ControlName">txtWeekDay</Argument>
        <Argument Name="Property">Value</Argument>
        <Argument Name="Value">=[LocalVars]![varWeekDay]</Argument>
      </Action>
    </Statements>
  </UserInterfaceMacro>
</UserInterfaceMacros>

0 件のコメント: