単価の文字列表記への変換⇒DLookup 関数

AccessVBA開発

クエリのビルド式

税込原価: IIf([tb商品一覧.仕入日] <= #2014/04/01#, Fix([tb商品一覧.税抜原価]*1.05),Fix([tb商品一覧.税抜原価]*1.08))

※単価の文字列表記への変換

Right(Fix(Tanka/10),i)
[一] = Right([税抜原価], 1)
[十] = Right(Int([税抜原価] / 10), 1)
[百] = Right(Int([税抜原価] / 100), 1)
[千] = Right(Int([税抜原価] / 1000), 1)
[万] = Right(Int([税抜原価] / 10000), 1)
[十万] = Right(Int([税抜原価] / 100000), 1)
[百万] = Right(Int([税抜原価] / 1000000), 1)

@:Right(Int([税抜原価] / 1000000), 1)+Right(Int([税抜原価] / 100000), 1)+Right(Int([税抜原価] / 10000), 1)+Right(Int([税抜原価] / 1000), 1)+”-“+Right(Int([税抜原価] / 100), 1)+ Right(Int([税抜原価] / 10), 1)+Right([税抜原価], 1)
———————————
○DLookup 関数

指定されたレコードのセット (定義域) から、特定のフィールドの値を返します。DLookup 関数は、Visual Basic for Applications (VBA) モジュール、マクロ、クエリ式、またはフォームやレポート上の演算コントロールで使うことができます。

構文
DLookup(expr, domain [, criteria] )
expr>>:対象となるデータが含まれているフィールドを表す式
テーブルまたはクエリ内のフィールドを表す文字列式か、またはそのフィールドのデータを使用して計算を実行する式を指定します。テーブルのフィールド名、フォームのコントロール、定数、または関数を指定できます。
domain>>:定義域を構成するレコードを指定する文字列式
criteria>>:省略可能

※、[受注明細] テーブルを基にする[受注明細] フォームに、[商品コード] フィールドを表示する [商品コード] というテキスト ボックスがあるとします。[商品コード]の値に基づいて [商品] テーブルから [商品名] を参照する場合

=DLookup(“[商品名]”, “商品”, “[商品コード] = ” & Forms![受注明細]!商品コード)
——————————-

=DLookup(“@s”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 1000000), 1))
&DLookup(“@s”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 100000), 1))
&DLookup(“[文字コード]”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 10000), 1))
&DLookup(“[文字コード]”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 1000), 1))
&DLookup(“[文字コード]”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 100), 1))
&DLookup(“[文字コード]”, “tb単価文字コード”, “[数値] = “& Right(Int([税抜原価] / 10), 1))
&DLookup(“[文字コード]”, “tb単価文字コード”, “[数値] = “& Right([税抜原価] , 1))
@:
IIf(IsNull([税抜原価]/1000000),1),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/1000000),1))) &
IIf(IsNull(Right(Int([税抜原価]/100000),1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/100000),1))) &
IIf(IsNull(Right(Int([税抜原価]/10000),1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/10000),1))) &
IIf(IsNull(Right(Int([税抜原価]/1000),1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/1000),1))) &
IIf(IsNull(Right(Int([税抜原価]/100),1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/100),1))) &
IIf(IsNull(Right(Int([税抜原価]/10),1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right(Int([税抜原価]/10),1))) & IIf(IsNull(Right([税抜原価],1)),””,DLookUp(“[文字コード]”,”tb単価文字コード”,”[数値] = ” & Right([税抜原価],1)))

———————————————-

@s:
Replace(Trim(Replace(Right(Int([税抜原価] / 1000000), 1)+Right(Int([税抜原価] / 100000), 1)+Right(Int([税抜原価] / 10000), 1)+Right(Int([税抜原価] / 1000), 1)+”-“+Right(Int([税抜原価] / 100), 1)+ Right(Int([税抜原価] / 10), 1)+Right([税抜原価], 1),”0″,” “)),” “,”0″)

————————————————-
@1: IIf(InStr(1,[@s],”-“)<5,””,Mid([@s],InStr(1,[@s],”-“)-4,1))
@2: IIf(InStr(1,[@s],”-“)<4,””,Mid([@s],InStr(1,[@s],”-“)-3,1))
@3: IIf(InStr(1,[@s],”-“)<3,””,Mid([@s],InStr(1,[@s],”-“)-2,1))
@4: IIf(InStr(1,[@s],”-“)<2,””,Mid([@s],InStr(1,[@s],”-“)-1,1))
@x: IIf(Right([@s],1)=”-” Or Left([@s],1)=”-“,””,”-“)
@5: IIf(InStr([@s],”-“)=1 And Len([@s])<2,””,Mid([@s],InStr([@s],”-“)+1,1))
@6: IIf(InStr([@s],”-“)=1 And Len([@s])<3,””,Mid([@s],InStr([@s],”-“)+2,1))
@7: IIf(InStr([@s],”-“)=1 And Len([@s])<4,””,Mid([@s],InStr([@s],”-“)+3,1))
——————————————————–
@1d:IIf([@1]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@1]))
@2d:IIf([@2]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@2]))
@3d:IIf([@3]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@3]))
@4d:IIf([@4]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@4]))
@xd: [@x]
@5d: IIf([@5]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@5]))
@6d: IIf([@6]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@6]))
@7d: IIf([@7]=””,””,DLookUp(“文字コード”,”tb単価文字コード”,”[数値] =” & [@7]))
——————————————————-
@:@1d+@2d+@3d+@4d+@xd+@5d+@6d+@7d
——————————————————-
cmdGenkahyouInsatu
txtIdHajimari
txtIdOwari
strGenkahyou1=txtIdHajimari.Value
strGenkahyou2=txtIdOwari.value

タイトルとURLをコピーしました