変数 oder (string)が
ありまして
オーダーメニューからコマンドボタンを押すと
oder=oder & vbcrlf & " " & command1.caption & " " & "1ケ" & kakaku
として、 変数 oderに格納しています。
変数 ODERに command1.captoinがあった場合 個数の1ケを2ケにして
Kakakuを変更して
同じものを何個もいれたくないのですが可能でしょうか?
>変数 ODERに command1.captoinがあった場合 個数の1ケを2ケにして
>Kakakuを変更して
>同じものを何個もいれたくないのですが可能でしょうか?
結論から言えば、区切り文字の条件によっては可能でしょう。
しかし、通常はそーいった面倒で効率の悪い方法は取らず、
商品名を検索用のキーにした、個数と価格を数値として入れて
おける入れ物を用意し、更新するようにします。変数 oder
が必要になったときにその入れ物から文字列を作成します。
質問の通りの機能でコーディングするなら[文字列操作関数]
ですね。区切り文字が『改行(vbcrlf)』と『" "半角スペース』
と『ケ』で command1.caption にそれらの文字が含まれていない
事が確実なら、その区切り文字を順に探せば良いだけだと思います。
ヘルプを『文字列』あたりでキーワード検索して使えそうな物を
使ってください。Split 関数あたりで区切ってもできるのでは?
まぁ、方法は色々あると思います…。
なぜ こういう形をとってるかというと
飲食店で使おうと思ってるもので、
別に商品マスターというものを作っています。
飲食店なので タイミングに応じて
何が注文されるかわからないことが起こりえる思うです。
たとえば、ビールを注文して、また違うタイミングで
ビールの注文が入る
最終的な伝票の打ちあがりでまとめた状態で打ち上げられたらなとおもったからです。
貴重なヒントをありがとうございます。
少しがんばってみます、 また、行き詰ったら
教えてください。
説明不足ですみません
ビール 1ケ 500
ラーメン 1ケ 650
のような感じで変数Oderに入っていくんです。
ビール 1ケ 500
ラーメン 1ケ 650
ビール 1ケ 500
ではなく ビールを再び注文したときに
ビール 2ケ 1000
ラーメン 1ケ 650
ような形をとりたかったのです。
Dim moji As String
Dim moji2 As String
Dim moji3 As String
If oder Like "*" & Command1(Index).Caption & "*" Then
moji = Mid(oder, InStr(oder, Command1(Index).Caption), (Len(oder + 1))
moji2 = Mid(moji, (Len(Command1(Index).Caption) + 4), InStr(moji, "ケ"))
moji3 = Val(Replace(Left(moji2, InStr(moji2, " ")), "ケ", ""))
oder = Replace(oder, vbCrLf & Command1(Index).Caption & " " & Val(moji3) & "ケ" & " " & Val(moji3) * kakaku, "")
moji3 = Val(moji3) + 1
oder = oder & vbCrLf & Command1(Index).Caption & " " & moji3 & "ケ" & " " & Val(moji3) * kakaku
Else
oder = oder & vbCrLf & Command1(Index).Caption & " " & "1ケ" & " " & kakaku
End If
複雑なソースになってしまいましたが
これで解決することができました。
ありがとうございました。
ツイート | ![]() |