Access VBA質問箱 IV

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

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


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

【8536】Re:画面にめーニューを作りたい
回答  shin  - 06/8/26(土) 13:09 -

引用なし
パスワード
   ▼教えて さん:

>業務用でよくみかけるメニュー見たいのがつくりたい

業務用というのが良く分かりませんが、
1つのmdbで起動時のフォームを作成したいということならば
以下の方法になると思います。

1/自分自身で起動時のフォームを作成する。
2/ツール → データベースユーティリティ → メニュー用フォームビルダ

上記作成後、起動時の設定でフォームを指定すれば可能と思いますが。
・ツリー全体表示

【8535】画面にめーニューを作りたい
質問  教えて  - 06/8/26(土) 10:45 -

引用なし
パスワード
   よろしくお願いします。
まず、アクセスでいろいろなものを作ってますが、それを一つにまとめるような
メニューを作れればよいと思ってます。
そのような方法がありますか?
是非教えて下さい。
業務用でよくみかけるメニュー見たいのがつくりたい
・ツリー全体表示

【8533】Re:コマンドの実行について
回答  小僧  - 06/8/25(金) 17:39 -

引用なし
パスワード
   ▼ねもと さん:
マクロだけでもできる模様です。

・テーブルを開く
 テーブル名:テーブル名
 ビュー:データシートビュー
 データモード:編集

・コマンドの実行
 全てのレコードを選択

・コマンドの実行
 削除

・閉じる
 オブジェクトの種類:テーブル
 オブジェクト名:テーブル名
 オブジェクトの保存:確認
・ツリー全体表示

【8532】Re:コマンドの実行について
回答  小僧  - 06/8/25(金) 16:42 -

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

マクロだけでは無理かもしれません。
(できたら済みません。)

削除クエリを作ってクエリを実行させてみてはいかがでしょうか。


※ データの削除処理になるので、必ずバックアップを取りましょうね。

削除クエリが作成できれば、SQLビューに切り替えると

DELETE FROM テーブル名…

の様な記述が確認できるかと思われます。
これが確認できれば上記の「クエリの実行」でも


マクロ:SQLの実行

SQLステートメント:DELETE FROM …
トランザクションの使用:はい

でもレコードの削除処理は行えるかと思います。
・ツリー全体表示

【8531】Re:エラーで実行できません
お礼  ねもと  - 06/8/25(金) 15:07 -

引用なし
パスワード
   ▼飛ばない豚 さん:
ありがとうございます。
今度から英数字で対応していきたいと思います。
また何かありましたらよろしくお願いします。
・ツリー全体表示

【8530】コマンドの実行について
質問  ねもと  - 06/8/25(金) 15:04 -

引用なし
パスワード
   モジュールでクエリーを実行するには
DoCmd.OpenQuery "クエリ名"
で実行できますが、
マクロのなかのコマンドの実行で
すべてのレコードを選択と
レコードの削除は
どのように記述すればいいですか?
よろしくお願いします。
・ツリー全体表示

【8529】Re:エラーで実行できません
発言  飛ばない豚  - 06/8/25(金) 15:04 -

引用なし
パスワード
   ▼ねもと さん:
小僧 さん 横レス失礼します。


関数名に日本語が入っていると、ときどきこのようなエラー(Accessが見つけることのできない関数名か含まれています)に遭遇します。
(Accessのバージョンが上がるとだいぶ解消されるようですが)


昔、Win98,Acc97の環境だったとき、

全て日本語だった場合、殆どエラーでした。

関数名を英数+日本語(例えば、Function Fxエラー処理 とか)にした場合、
エラーの確率は減りましたが、3割(体感?!)程度はエラーでした。

関数名を全て英語にした場合、エラーは発生しませんでした。

これは、Functionに限りで、Subについては日本語でも大丈夫でした。


それ以来の癖(?)で、私は、Functionについては全て英数字の名前、
Subについては、英数+日本語(読みやすさの為)にしてます。
Function FxErrorChk()
Sub sub_エラーチェック()
こんな感じです。

変更してからエラーが発生したことはありません。
(WinとAccのバージョンが上がった為かもしれませんが)


名前を変更すると、他のところにも影響するかもしれませんが、
Functionの場合、英数名にする事をお勧めします。
・ツリー全体表示

【8528】Re:エラーで実行できません
お礼  ねもと  - 06/8/25(金) 15:00 -

引用なし
パスワード
   小僧 さん
ありがとうございます。できました。
Public Function エラーチェック()

Public Function エラー()
に変更したらできました。
ありがとうございました。
・ツリー全体表示

【8527】Re:エラーで実行できません
回答  小僧  - 06/8/25(金) 14:36 -

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

>標準モジュールに移すとはどういうことですか?

ねもとさんのお使いの環境はAc97だったでしょうか。

そうなると、データベースウィンドウに
「テーブル」「フォーム」などタブが色々ありと思いますが、

「モジュール」から「新規作成」を選ぶと
「Module1」の様なものが作成できると思います。

フォームの方にコードが書いてあるのでしたらそれを切り取って
Module1 に貼り付けて実行されてみて下さい。


>標準モジュールで作成しています。

>>モジュールを作成して単体ではうまくいったのですが、

という事でしたら、

>> 見つけることのできない関数名か含まれています

というエラーが発生する原因としては
引数名が間違っている事が考えられますね。

(ー⇒−などの微妙な違いなど…)
・ツリー全体表示

【8526】Re:振替伝票の勘定科目が上手く出せません
発言  飛ばない豚  - 06/8/25(金) 14:34 -

引用なし
パスワード
   ▼momo さん:
> 症状は変わりませんでした
というのは、
>”フィールド’借方ID'とキーが一致しているレコードをテーブル’T 勘定科目’で探すことができません”
と出るということでしょうか?

これは、

> 今のところ、私がしたことは、3つのテーブルをつくり、クエリでこのテーブルを使用しリレーションを結びました。「T 勘定科目」のIDと「T 伝票サブ」の貸方ID、借方IDをリレーションしなければそれぞれのIDには別々のIDナンバーが入力されます。抽出条件は設定していません。

このとき、すなわち、[#8520]のクエリの時には出てないのですよね。
・ツリー全体表示

【8525】Re:振替伝票の勘定科目が上手く出せません
お礼  momo  - 06/8/25(金) 14:28 -

引用なし
パスワード
   ▼飛ばない豚 さん:

できました(^^)v
ありがとうございます。

もう一度、私のどこかが違うのだろうと一つずつ考えながらしてみました。
そうしたら、できました。
ありがとうございました。感謝いたします。

これからもまだまだ躓くことが多々あるかと思います。
そのときは、宜しくお願いします。

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

【8524】Re:振替伝票の勘定科目が上手く出せません
発言  momo  - 06/8/25(金) 14:09 -

引用なし
パスワード
   ▼飛ばない豚 さん:

色々とお世話おかけしまして、ありがとうございます。

SQL文を入れ替えてみましたが症状は変わりませんでした。m(_)m
根本的なところで何かが間違っているのでしょうか?

懲りずに宜しくお願いします。
・ツリー全体表示

【8523】Re:エラーで実行できません
質問  ねもと  - 06/8/25(金) 13:40 -

引用なし
パスワード
   小僧 さん:
いつもありがとうございます。
たぶん標準モジュールで作成しています。

標準モジュールに移すとはどういうことですか?
・ツリー全体表示

【8522】Re:振替伝票の勘定科目が上手く出せません
発言  飛ばない豚  - 06/8/25(金) 13:20 -

引用なし
パスワード
   ▼momo さん:
SQL文を次のものと入れ替えてみてください。

SELECT [T 伝票サブ].伝票番号, [T 伝票サブ].貸方ID, [T 勘定科目].科目名 AS 貸方科目, [T 伝票サブ].貸方金額, [T 伝票サブ].借方ID, [T 勘定科目_1].科目名 AS 借方科目, [T 伝票サブ].借方金額, [T 伝票サブ].摘要
FROM [T 勘定科目] AS [T 勘定科目_1] INNER JOIN ([T 勘定科目] INNER JOIN [T 伝票サブ] ON [T 勘定科目].科目コード = [T 伝票サブ].貸方ID) ON [T 勘定科目_1].科目コード = [T 伝票サブ].借方ID;


[T 勘定科目_1].科目名 AS 借方科目 を追加したのみです。
・ツリー全体表示

【8521】Re:エラーで実行できません
回答  小僧  - 06/8/25(金) 13:13 -

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

>Public Function エラーチェック()

はどちらに書かれていますでしょうか。

もしフォームモジュールに書かれているのでしたら、
標準モジュールに移すとエラーが解消されるかもしれません。
・ツリー全体表示

【8520】Re:振替伝票の勘定科目が上手く出せません
発言  momo  - 06/8/25(金) 12:53 -

引用なし
パスワード
   ▼飛ばない豚 さん:

ありがとうございます。

SQL文は次のようになっていました。

SELECT [T 伝票サブ].伝票番号, [T 伝票サブ].貸方ID, [T 勘定科目].科目名 AS 貸方科目, [T 伝票サブ].貸方金額, [T 伝票サブ].借方ID, [T 伝票サブ].借方金額, [T 伝票サブ].摘要
FROM [T 勘定科目] AS [T 勘定科目_1] INNER JOIN ([T 勘定科目] INNER JOIN [T 伝票サブ] ON [T 勘定科目].科目コード = [T 伝票サブ].貸方ID) ON [T 勘定科目_1].科目コード = [T 伝票サブ].借方ID;

いかがでしょうか?

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

【8519】Re:EXCELへの出力方法
回答  飛ばない豚  - 06/8/25(金) 11:55 -

引用なし
パスワード
   ▼質問者(初心者A) さん:
OutputToには件数制限があったような、なかったような。。。。。

DoCmd.TransferSpreadsheet acExport, _
             acSpreadsheetTypeExcel9, _
             "Q_検索1", _
             "C:\Employee.XLS", _
             True

を試してみてはいかがでしょう。
・ツリー全体表示

【8518】エラーで実行できません
質問  ねもと  - 06/8/25(金) 11:42 -

引用なし
パスワード
   マクロを実行すると指定した式にMicrosoft Accessが見つけることのできない関数名か含まれています。と出てしまいます。
その後に
マクロ名 登録
条件 TRUE
アクション名 プロシージャの実行
引数 エラーチェック()
と出ます。

入力テーブルに、A、A店舗コード、B、B店舗コードがあり
Aをチックしたときには、A店舗コートを入力し
Bをチックしたときには、B店舗コートを入力して
T店名テーブルと該当する場合は、企業コードテーブル追加のクエリを実行し
該当しない場合は、エラーメッセジを出したいのです。
モジュールを作成して単体ではうまくいったのですが、
フォームからマクロを実行するとエラーになってしまいます。
もっと簡単なやり方があるかもしれませんが、自分ではこれが精一杯です。
よろしくお願いします


Public Function エラーチェック()
Dim Db As Database
Dim INRsA As Recordset
Dim INRsB As Recordset
Dim 読込A As String
Dim 読込B As String
Dim エラーA As Integer
Dim エラーB As Integer

  Set Db = CurrentDb
  
  読込A = "入力テーブル"
  読込B = "T店名"
  エラーA = 0
  エラーB = 0
  
  Set INRsA = Db.OpenRecordset(読込A, dbOpenDynaset)
  Set INRsB = Db.OpenRecordset(読込B, dbOpenDynaset)
  
  Do Until INRsB.EOF
   If INRsA!A = True And INRsB!店舗コード = INRsA!A店舗コード Then
     エラーA = 1
   End If
   If INRsA!B = True And INRsB!店舗コード = INRsA!B店舗コード Then
     エラーB = 1
   End If
  INRsB.MoveNext
  Loop
  
  If INRsA!A = False And INRsA!A店舗コード = Null Then
     エラーA = 1
  End If
  If INRsA!B = False And INRsA!B店舗コード = Null Then
     エラーB = 1
  End If
  
  If エラーA = 1 And エラーB = 1 Then
    DoCmd.OpenQuery "企業コードテーブル追加"
  Else
    If エラーA = 0 Then
    MsgBox "A店舗コードエラー"
    Else
    MsgBox "B店舗コード力エラー"
    End If
  End If
  
  INRsA.Close
  INRsB.Close
  Db.Close

End Function
・ツリー全体表示

【8517】Re:価格更新について
お礼  TB1  - 06/8/25(金) 11:01 -

引用なし
パスワード
   ▼雅 さん:
こんにちは
ご教授ありがとうございます。
いかに私がわかってないか、はっきりしてしまいました。
単純にsub ダイアログテスト()〜end sub を含めて埋め込もうとした、埋め込む場所が分かっていなかったのが原因でした。お恥ずかしい。
出直してきます。
・ツリー全体表示

【8516】EXCELへの出力方法
質問  質問者(初心者A)  - 06/8/25(金) 10:53 -

引用なし
パスワード
   教えて下さい。
クエリーで抽出したデータをEXCELに出力していのですが
ACCESSでの出力件数を超えたとエラーが出ます。

ちなみにデータは、MAX4万件あります。

横項目 6個 縦項目 MAX 4万件です。

DoCmd.OutputTo acOutputQuery, "Q_検索1", acFormatXLS, "C:\Employee.XLS", True

何か回避策があれば教えて下さい。
・ツリー全体表示

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