Access VBA質問箱 IV

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

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


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

【6372】文字列の処理方法
質問  Saiyama  - 05/9/28(水) 11:45 -

引用なし
パスワード
   こんにちは
 初めて、投稿しました。
 テーブルにあるフィールドに対して、以下のような処理を行いたいですが、
処理方法はわかりません、よろしくお願いします。

規格名の構成は半角数字(1〜3桁)と文字(一文字)となっています。
やりたいことは、規格名の数字だけを分離させたいです。

規格名
100A
10A
1A
処理後
規格名
100
10
1
・ツリー全体表示

【6371】Re:帳票フォームにて選択した行の背景に色...
お礼  okain  - 05/9/28(水) 9:44 -

引用なし
パスワード
   >過去ログの交互に色をつける方法の場合は
>条件式書式を使っていませんでしたでしょうか?
>
>帳票フォームで作られる詳細部のコントロールは
>レコードが増えると複数に見えるのですが、
>実体は1つなので小細工が必要になってしまいます。
>
>以下小細工です…。
>
>フォームヘッダーにテキストボックス「txt社員名」を配置。
>
>詳細部の枠いっぱいにテキストボックス「txt背景」を配置し最背面へと移動。
>
>「txt背景」の条件付書式に
>
>「式」「 [社員名]=[txt社員名] 」という条件で背景を黄色に設定。
>
>
>フォームのプロパティから「レコード移動時」を選び右側の「...」をクリック。
>コードビルダを選択すると表示される画面に、
>
>Private Sub Form_Current()
>  Me.txt社員名 = Me.Recordset![社員名]
>End Sub
>
>と記述して閉じる。
>
>選択するレコードが移動する度に
>背景色が変わるように見えるようになりませんでしょうか?
>
>(あとは txt社員名を不可視にでもして下さい。)

お返事遅くなってすいません。
ありがとうございます。

後日上記のようにやって
行ってみます。

ほんとうに ありがとうございます。
・ツリー全体表示

【6370】ACCESSの最大化ボタン、最小化ボタンを無...
質問  なとり  - 05/9/27(火) 22:29 -

引用なし
パスワード
   質問させてください。

当サイトで閉じるボタンを無効にする方法はのっていましたので、
それをコピペして確認したところ、閉じるボタンを無効にすることができました。
さらに、最大化ボタンと最小化ボタンを無効にしたいのですが、方法がわかりません。
方法をご存知の方見えましたら、ご教授ください。
または、参考になるサイトを教えていただけますか?
よろしくお願い致します。


【ソース】
Private Declare Function GetSystemMenu Lib "user32" _
  (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" _
  (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Private Declare Function DrawMenuBar Lib "user32" _
        (ByVal hWnd As Long) As Long

Private Const MF_BYCOMMAND As Long = &H0&
Private Const SC_CLOSE As Long = &HF060&
Private Const SC_MAXIMIZE As Long = &HF030&
Private Const SC_MINIMIZE As Long = &HF020&
Private Const SC_RESTORE As Long = &HF120&
Private Const SC_MOVE As Long = &HF010&   '移動
Private Const SC_SIZE As Long = &HF000&   'サイズ変更

Public Function RepealButton()

  Dim LnghWnd As Long

  LnghWnd = GetSystemMenu(hWndAccessApp, 0&)

  Call RemoveMenu(LnghWnd , SC_CLOSE, MF_BYCOMMAND)  
  Call RemoveMenu(LnghWnd , SC_MAXIMIZE, MF_BYCOMMAND)
  Call RemoveMenu(LnghWnd , SC_MINIMIZE, MF_BYCOMMAND)
  Call RemoveMenu(LnghWnd , SC_MOVE, MF_BYCOMMAND)  
  Call RemoveMenu(LnghWnd , SC_SIZE, MF_BYCOMMAND)  
  Call RemoveMenu(LnghWnd , 0, MF_BYCOMMAND)
  Call DrawMenuBar(LnghWnd )

End Function


別のところで最大化ボタン等を無効にするというものをいくつか見つけましたが、
確認したら、閉じるボタンのみ無効となり、最大化ボタン、最小化ボタンは
無効になりませんでした。

詳しいことはわかりませんが、上記のソースを見るかぎりでは、最大化ボタン、最小化ボタンを
無効にしているようなのですが、うまくいきませんでした。
・ツリー全体表示

【6369】Re:フィルタに関して
お礼  Sta  - 05/9/27(火) 14:43 -

引用なし
パスワード
   ▼クロ さん:
>こんにちは、クロです。
>直書きするときには「"」で括っているのに
>変数にしたら括らないのは...なぜ?
>
>Filter = "対応結果 = '" & Da & "'"
>でどうでしょ?

ご回答ありがとうございます。
ご指摘の通りです。
変更して上手く抽出できました
ありがとうございます。
・ツリー全体表示

【6368】Re:フィルタに関して
回答  クロ  - 05/9/27(火) 14:17 -

引用なし
パスワード
   こんにちは、クロです。
直書きするときには「"」で括っているのに
変数にしたら括らないのは...なぜ?

Filter = "対応結果 = '" & Da & "'"
でどうでしょ?
・ツリー全体表示

【6367】フィルタに関して
質問  Sta  - 05/9/27(火) 14:01 -

引用なし
パスワード
   こんにちは。
フィルタで直接値を入れると上手く行くのですが
変数で設定すると「パラメータ入力」の画面がでます。
ここに入力すると(手入力)上手く抽出します。
画面を出さないで抽出する方法を教えて下さい。

例:OKの場合
Filter = "対応結果 = ""対応済"""
FilterOn = True

例:パラメータ入力画面が出てくる場合
Dim Da As String
Da= "対応済"
Filter = "対応結果 = " & Da
FilterOn = True ←ここを通過後画面がでます


よろしくお願いします。
・ツリー全体表示

【6366】小僧さんどうもです。
お礼  ゴンザレス E-MAIL  - 05/9/27(火) 11:43 -

引用なし
パスワード
   小僧さんのアイデアで解決することができました。
一行削除機能って何でないんですかね? これができるとすごく便利ですよね。
・ツリー全体表示

【6365】Re:追加クエリでできますか パート2
お礼  ツイン  - 05/9/27(火) 9:27 -

引用なし
パスワード
   小僧様

おはようございます。
昨日は何度も回答をいただきありがとうございました。
教えていただいた”自作関数”で解決することができました。
これでなんとか今月中に片付けることができます(笑)

丁寧な対応&回答、本当にありがとうございました<(__)>
・ツリー全体表示

【6364】Re:セル内の改行を検索するSQLを教えて下...
回答  hatena  - 05/9/27(火) 1:15 -

引用なし
パスワード
   ▼t29x0479 さん:
>ACCESSで、テキスト型のフィールドで、セル内改行が含まれるフィールドをSELECT文で抽出したいと思っていますが、SQLで正規表現の書き方がわからなくて、うまくいきません。ご存じの方教えて下さい。

WHERE InStr(フィールド名,Chr(13) & Chr(10)) > 0

とか、

WHERE フィールド名 Like "*" & Chr(13) & Chr(10) & "*"

かな。
・ツリー全体表示

【6363】セル内の改行を検索するSQLを教えて下さい
質問  t29x0479  - 05/9/26(月) 21:17 -

引用なし
パスワード
   ACCESSで、テキスト型のフィールドで、セル内改行が含まれるフィールドをSELECT文で抽出したいと思っていますが、SQLで正規表現の書き方がわからなくて、うまくいきません。ご存じの方教えて下さい。
・ツリー全体表示

【6362】連続帳票の印刷方法
質問  ジュン  - 05/9/26(月) 17:43 -

引用なし
パスワード
   ジュンと申します。
現在、使用中の納品書が連続帳票形式で、改行ピッチが6行/インチになっています。
1枚のサイズはたて6インチ、よこ10インチです。
このような伝票を印刷する場合のフォントの指定や用紙指定等について、教えて下さい。
 基本的なことで申し訳ないのですが 上手く伝票印刷ができません。お願い致します。
・ツリー全体表示

【6361】Re:追加クエリでできますか パート2
回答  小僧  - 05/9/26(月) 17:32 -

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

では自作関数を作ってしまいましょう。

新規モジュールを作成し、

Function Q_Replace(strData As String)

  Q_Replace = Replace(strData, Chr(10), "")

End Function

のように記述します。


クエリからこれを呼び出す形で、

INSERT INTO テーブルC ( 項目9, 項目10 )
SELECT テーブルA.項目1, Q_Replace([項目8] & [項目2])
FROM テーブルA INNER JOIN テーブルB ON テーブルA.項目1 = テーブルB.項目5;

とする案はどうでしょうか?
・ツリー全体表示

【6360】Re:追加クエリでできますか パート2
発言  ツイン  - 05/9/26(月) 17:12 -

引用なし
パスワード
   小僧 様

何度もお返事すみません&ありがとうございます。
VBAの方ではREPLACE関数が使用できるようですが、
クエリの式ベルダにある「組み込む関数」には表示されないのです。
何故でしょうか・・・・・大変です(汗)
・ツリー全体表示

【6359】Re:追加クエリでできますか パート2
発言  小僧  - 05/9/26(月) 16:58 -

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

Access2000 はReplace 関数は使えませんでしたっけ?
(当方Ac2002 と Ac97 しかないので検証できません。すみません)


>テーブルに格納後、CSVファイルへエクスポートを行う処理なんです。

クエリからでもCSVファイルへエクスポート可能ですよ^^
・ツリー全体表示

【6358】Re:追加クエリでできますか パート2
発言  ツイン  - 05/9/26(月) 16:49 -

引用なし
パスワード
   小僧様

早速のお返事ありがとうございます。
残念ながら、Access2000です(TOT)
テーブルに格納後、
CSVファイルへエクスポートを行う処理なんです。

今も必死で検索中です。
また何かありましたら、ぜひ教えて下さい。
お待ちしています!
・ツリー全体表示

【6357】Re:追加クエリでできますか パート2
回答  小僧  - 05/9/26(月) 16:40 -

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

ツインさんのお使いのAccessのバージョンにもよるのですが、
Access2000以降でしたら Replace関数 をクエリ内で使うことが可能です。

INSERT INTO テーブルC ( 項目9, 項目10 )
SELECT テーブルA.項目1, Replace([項目8] & [項目2],Chr(10),"")
FROM テーブルA INNER JOIN テーブルB ON テーブルA.項目1 = テーブルB.項目5;


※テーブルA と テーブルB から作成する事ができるデータは
 テーブルに格納しないでクエリで処理するのが一般的ですよ^^
・ツリー全体表示

【6356】追加クエリでできますか パート2
質問  ツイン  - 05/9/26(月) 15:41 -

引用なし
パスワード
   2度目です。長文ですみません。宜しくお願いします。

2つのテーブル(A・B)の異なるフィールドより、
文字列を結合して、別テーブル(C)に新規レコードを追加。
その際、改行を削除し1行で登録したいのですが、
「追加クエリ」で設定できますか?
やっぱり、VBAで記述しないと無理なのでしょうか?
すみませんが、教えて下さい<(__)>

《テーブルA》
項目1 2       3   4  
-----------------------------------+
001|123(改行)|AAA|あああ| ←「項目2」は改行付き
   |イロハ    |   |   |    
-----------------------------------+
005|456(改行)|BBB|いいい|
   |ニホヘ    |   |   |
-----------------------------------+

《テーブルB》
項目5 6 7 8
---------------+
001|◇|○|△|
---------------+
005|◆|●|▲|
---------------+


【テーブルC】
項目9 10
---------------------+
001|△123イロハ| ←改行を削除し、1行にしたい。
---------------------+
005|▲456ニホヘ|
---------------------+
・ツリー全体表示

【6355】Re:印刷について(題名(疑問)の変更です...
お礼  勝子  - 05/9/26(月) 15:16 -

引用なし
パスワード
   クロさん、hatenaさん

ひねくれもののパソコンのようで
”通常使うプリンタ”ではなく『その他のプリンタ』の設定にしたら
プレビューも印刷も出来る様になりました。

なんだかスッキリしないのですが
一応解決できましたので報告致します。

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

【6354】Re:csv ファイル 一行削除 はできますか...
回答  小僧  - 05/9/26(月) 13:49 -

引用なし
パスワード
   ▼ゴンザレス さん:
こんにちは。

Sub CSVで一行削除()
Dim CsvName As String
Dim strLine As String
Const TempName = "C:\Temp1.csv"
  
  CsvName = "C:\Temp.csv"
  
  Open CsvName For Input As #1
  Open TempName For Output As #2
  
  Do Until EOF(1)
    Line Input #1, strLine
      If strLine <> "0002,B" Then
        Print #2, strLine
      End If
  Loop
  
  Close #2
  Close #1
  
  FileCopy TempName, CsvName
  Kill TempName
End Sub

"0002,B" となっている行があれば削除するようなコードです。
・ツリー全体表示

【6353】csv ファイル 一行削除 はできますか?
質問  ゴンザレス E-MAIL  - 05/9/26(月) 11:28 -

引用なし
パスワード
   すいません。 突然失礼します。
CSVで一行だけ削除することはできませんか? 
自分でも調べているんですが、ファイル削除はあるのですが
なかなか見つかりません。
たとえば
0001,A
0002,B
0003,C
とあった場合
0002,B
だけプログラムで削除操作したい場合のプラグラムがわかりません。
VBAなんですが どなたか分かる方助けていただけませんか?
・ツリー全体表示

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