変数内の置換作業

解決


ラング@初心者  2005-01-02 09:16:29  No: 118575

変数 oder (string)が
ありまして

オーダーメニューからコマンドボタンを押すと
oder=oder &  vbcrlf  & " " & command1.caption & " " & "1ケ" & kakaku
として、 変数  oderに格納しています。

変数  ODERに  command1.captoinがあった場合  個数の1ケを2ケにして
Kakakuを変更して
同じものを何個もいれたくないのですが可能でしょうか?


特攻隊長まるるう  2005-01-02 10:09:14  No: 118576

>変数  ODERに  command1.captoinがあった場合  個数の1ケを2ケにして
>Kakakuを変更して
>同じものを何個もいれたくないのですが可能でしょうか?
結論から言えば、区切り文字の条件によっては可能でしょう。

しかし、通常はそーいった面倒で効率の悪い方法は取らず、
商品名を検索用のキーにした、個数と価格を数値として入れて
おける入れ物を用意し、更新するようにします。変数 oder
が必要になったときにその入れ物から文字列を作成します。

質問の通りの機能でコーディングするなら[文字列操作関数]
ですね。区切り文字が『改行(vbcrlf)』と『" "半角スペース』
と『ケ』で command1.caption にそれらの文字が含まれていない
事が確実なら、その区切り文字を順に探せば良いだけだと思います。
ヘルプを『文字列』あたりでキーワード検索して使えそうな物を
使ってください。Split 関数あたりで区切ってもできるのでは?
まぁ、方法は色々あると思います…。


ラング  2005-01-02 12:56:28  No: 118577

なぜ  こういう形をとってるかというと
飲食店で使おうと思ってるもので、
別に商品マスターというものを作っています。
飲食店なので  タイミングに応じて
何が注文されるかわからないことが起こりえる思うです。
たとえば、ビールを注文して、また違うタイミングで
ビールの注文が入る
最終的な伝票の打ちあがりでまとめた状態で打ち上げられたらなとおもったからです。

貴重なヒントをありがとうございます。
少しがんばってみます、  また、行き詰ったら
教えてください。


ラング  2005-01-02 13:04:42  No: 118578

説明不足ですみません

ビール 1ケ 500
ラーメン 1ケ 650
 
のような感じで変数Oderに入っていくんです。

ビール 1ケ 500
ラーメン 1ケ 650
ビール 1ケ 500

ではなく  ビールを再び注文したときに

ビール 2ケ 1000
ラーメン 1ケ 650

ような形をとりたかったのです。


ラング  2005-01-03 21:18:42  No: 118579

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

複雑なソースになってしまいましたが
これで解決することができました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加