Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


341 / 500 ページ ←次へ | 前へ→

【6392】Re:文字列の処理方法
お礼  Saiyama  - 05/10/2(日) 10:20 -

引用なし
パスワード
   小僧さん
hatenaさん
 ありがとうございました。
 
・ツリー全体表示

【6391】Re:文字列の処理方法
回答  hatena  - 05/10/1(土) 23:54 -

引用なし
パスワード
   >単位    数字部分   文字部分 
>100g/P   100       P
>3斤/袋   3       袋
>5枚/セット 5       セット

数字部分は、Val関数で取り出せますね。

Val([単位])

文字部分(/ の後ろ)は

Mid([単位],InStr([単位],"/")+1)
・ツリー全体表示

【6390】Re:文字列の処理方法
質問  Saiyama  - 05/10/1(土) 22:48 -

引用なし
パスワード
   こんばんは、早速やってみました、数値だけの抽出が問題ありません。

>この3種類に限った場合だけで良いのか、それとも何か法則があるのか
>もう一度ご質問して下さい。

法則:単位の構成は数値部分、文字部分の順になっています。
   文字部分の中に「/」があります。
分解:数字と分母の文字列を分けたい。
例、

単位    数字部分   文字部分 
100g/P   100       P
3斤/袋   3       袋
5枚/セット 5       セット

OS:WINXP
Access:2002
・ツリー全体表示

【6389】Re:文字列の処理方法
回答  小僧  - 05/10/1(土) 21:59 -

引用なし
パスワード
   ▼Saiyama さん:
こんばんは。

数値だけ抜き出すのは
過去ログなのですが、以下が参考になりませんでしょうか?

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=6119;id=access

問題は単位なのですが、

>  120g/P  120    g
>  10斤/袋  10    斤
>  3枚/セット 3    セット

単位を抜き出す方法は、法則性がないと処理する事はできません。
この3種類に限った場合だけで良いのか、それとも何か法則があるのか
もう一度ご質問して下さい。

その際に Access のバージョンを明記して下さると助かります。
(バージョンによって使えない関数がありますので…)
・ツリー全体表示

【6388】Re:文字列の処理方法
質問  Saiyama  - 05/10/1(土) 17:12 -

引用なし
パスワード
   小僧さん
 こんにちは、問題解決でき、ありがとうございます。
新しい質問がありますので、よろしくお願いします。
解決したいことは、
クエリ
規格名  数量   単位
120g/P  120    g
10斤/袋  10    斤
3枚/セット 3    セット 
・ツリー全体表示

【6387】Re:ACCESSの最大化ボタン、最小化ボタンを...
お礼  なとり  - 05/9/30(金) 11:50 -

引用なし
パスワード
   >▼クロ さん:
>>APIは詳しくないんで...
>>殆ど同じですが、以下のURLの方法ですと無効になります
>>http://www.ruriplus.com/msaccess/faq/faq_035.html
>
>クロ さんありがとうございます。
>
>早速確認してみたいと思います。

クロ さん

教えていただいたURLの方法で確認しましたので、ご報告します。
(ご連絡が遅くなりまして、すみません。)

結果からお伝えしますと、最大化ボタン、最小化ボタンは
無効にはなりませんでした。

使用しているのがAPIなので、関係あるかわかりませんが、
ACCESSを再インストールしてみます。

ありがとうございました。
・ツリー全体表示

【6386】Re:引数の書き方
お礼  山田  - 05/9/29(木) 16:46 -

引用なし
パスワード
   わかりました。
ありがとうございました。


▼Gin_II さん:
>ADO の Find メソッドでは、複数列には対応していません。
>SQL文で抽出するなり、DAO を使うなりしてください。
・ツリー全体表示

【6385】Re:引数の書き方
回答  Gin_II  - 05/9/29(木) 16:31 -

引用なし
パスワード
   ADO の Find メソッドでは、複数列には対応していません。
SQL文で抽出するなり、DAO を使うなりしてください。
・ツリー全体表示

【6384】引数の書き方
質問  山田  - 05/9/29(木) 16:28 -

引用なし
パスワード
   全部のモジュールを書いておきます。

Dim cn As ADODB.Connection
Dim re1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset

Set cn = Application.CurrentProject.Connection
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset


rs1.Open "T_出張所マスタ", cn, adOpenKeyset, adLockOptimistic
rs2.Open "T_年度予算A", cn, adOpenKeyset, adLockOptimistic

rs1.MoveFirst

Do Until rs1.EOF

rs2.Find "'期' & '出張所CD' ='" & rs1!期 & rs1!出張所CD & "'"

If rs2.EOF Then
  rs2.AddNew
    rs2![期] = rs1![期]
    rs2![出張所CD] = rs1![出張所CD]
    rs2.Update
End If
rs2.MoveNext
Loop

rs1.Close
rs2.Close
cn.Close
・ツリー全体表示

【6383】引数の書き方
質問  山田  - 05/9/29(木) 16:23 -

引用なし
パスワード
   ACCESS2002なのですが
rs2.Find以下の引数の記述の仕方が違うらしく”引数が間違った型”とのメッセージが出ます。わかる方がいらしたら教えて頂きたくお願いします。


rs1.MoveFirst
Do Until rs1.EOF
rs2.Find "'期' & '出張所CD' ='" & rs1!期 & rs1!出張所CD & "'"
If rs2.EOF Then
  rs2.AddNew
    rs2![期] = rs1![期]
    rs2![出張所CD] = rs1![出張所CD]
    rs2.Update
End If
rs2.MoveNext
Loop
・ツリー全体表示

【6382】Re:抽出型でデータ形式が一致ません
お礼  山田  - 05/9/29(木) 16:16 -

引用なし
パスワード
   ▼Gin_II さん:

遅くなりましたが、できました。
ありがとうございました。


>>期と出は整数型です。
>
>あ。数値型ですか ^^;
>
>=DSum("期首","T_年度予算A","期=" & FORMS!フォーム名!期F & " And 出= " & FORMS!フォーム名!出F)
>
>に変更してみてください。
・ツリー全体表示

【6381】Re:ACCESSの最大化ボタン、最小化ボタンを...
お礼  なとり  - 05/9/29(木) 12:05 -

引用なし
パスワード
   ▼クロ さん:
>APIは詳しくないんで...
>殆ど同じですが、以下のURLの方法ですと無効になります
>http://www.ruriplus.com/msaccess/faq/faq_035.html

クロ さんありがとうございます。

早速確認してみたいと思います。
・ツリー全体表示

【6380】Re:ACCESSの最大化ボタン、最小化ボタンを...
発言  クロ  - 05/9/29(木) 5:52 -

引用なし
パスワード
   APIは詳しくないんで...
殆ど同じですが、以下のURLの方法ですと無効になります
http://www.ruriplus.com/msaccess/faq/faq_035.html
・ツリー全体表示

【6379】Re:帳票フォームにて選択した行の背景に色...
発言  しましま  - 05/9/29(木) 2:53 -

引用なし
パスワード
   最近私も同じことを考え、編み出した方法です。

1.まず、一覧フォームに使用しているレコードソースの「テーブル」に [カレント] と
  いう「Yes/No型」のダミーフィールドを作成します。

2.次に一覧フォームの「フォーム移動時イベント」に下記のコードを設定します。

Private Sub Form_Current()
Const myTBL As String = "T_一覧テーブル"   '元となるテーブル

  DoCmd.SetWarnings False
  '1.今カレントになっているフラグを消し、2.新しい行のカレントフラグをオンにする
  DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=False WHERE カレント=True;"
  DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=True WHERE " & "ID=" & id & ";"
  DoCmd.SetWarnings True
   
  Me.Repaint    '移動があまりにも早いと、画面が更新されないことがあるので再描画
       
End Sub
(上記例では、テーブルの主キーに「id」を使っています)
これで移動に合わせ、選択されているレコードの[カレント]フィールドに常にレ点が入り
ます。

3.ハイライト表示させたい全てのテキストボックス等のコントロールの条件付き書式に、
  [式]  式の内容→ [カレント]=True
  
  と設定します。

以上でできるはずです。
お試しあれ。 (^o^)
・ツリー全体表示

【6378】Re:住所の分割に関して
回答  Gin_II  - 05/9/28(水) 21:16 -

引用なし
パスワード
   >1フィールドに都道府県から住所・マンション名まで入力されているデータを
>都道府県、市区郡、町村域、番地、建物の5フィールドに分割するにはどうしたら
>いいでしょうか? 都道府県の取り出し方は分かりますが町村域の取り出し方など
>困っています。

VBAが分かるのなら、はがきウィザードを使って、レポートを作成してください。
で、そのレポートでどのように住所を分割しているかを確認してください。


>また、5分割した後、各フィールドに読み仮名を振りたいのですがどうしたらいいでしょうか? 

Excelの GetPhonetic メソッドを使うとか。
・ツリー全体表示

【6377】Re:ACCESSの最大化ボタン、最小化ボタンを...
質問  なとり  - 05/9/28(水) 20:56 -

引用なし
パスワード
   ▼クロ さん:
>グレーアウトしてなくても無効になってませんか?

クロ さん ありがとうございます。

最大化、最小化、(元に戻る)ボタンすべてが有効になっています。
・ツリー全体表示

【6376】住所の分割に関して
質問  eatanabe  - 05/9/28(水) 19:08 -

引用なし
パスワード
   初めて投稿いたします。
ACCESSの住所に関して2つの質問です。
1フィールドに都道府県から住所・マンション名まで入力されているデータを
都道府県、市区郡、町村域、番地、建物の5フィールドに分割するにはどうしたら
いいでしょうか? 都道府県の取り出し方は分かりますが町村域の取り出し方など
困っています。
また、5分割した後、各フィールドに読み仮名を振りたいのですがどうしたらいいでしょうか? 宜しくお願いします。
・ツリー全体表示

【6375】Re:セル内の改行を検索するSQLを教えて下...
お礼  t29x0479  - 05/9/28(水) 16:46 -

引用なし
パスワード
   ありがとうございました。見事セル内改行を検索することができました。
・ツリー全体表示

【6374】Re:ACCESSの最大化ボタン、最小化ボタンを...
発言  クロ  - 05/9/28(水) 14:46 -

引用なし
パスワード
   グレーアウトしてなくても無効になってませんか?
・ツリー全体表示

【6373】Re:文字列の処理方法
回答  小僧  - 05/9/28(水) 11:55 -

引用なし
パスワード
   ▼Saiyama さん:
こんにちは。

>規格名の構成は半角数字(1〜3桁)と文字(一文字)となっています。

文字が右 1 文字で確定でしたら、Left 関数 と Len 関数の組み合わせで可能ですね。

Left([規格名],Len([規格名]) - 1)


後は

>規格名
>100A
>10A
>1A

のような形を残すのであればクエリ抽出しながら、

今後、単位が絶対に必要でないのであれば更新クエリで処理が可能です。
・ツリー全体表示

341 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084707
(SS)C-BOARD v3.8 is Free