153910

hatena の Microsoft Access 掲示板



[7340] マルチユーザで使用する場合の設定 Name:chichinpuipui Date:2017/10/16(月) 23:15 [ 返信 ]
お世話になります。
マルチユーザ3-4名程度でACCESSツールを使用させる予定です。
その際、データバッティングの際、後にアクセスしたユーザに現在他のユーザが使用しているため旨のメッセージを表示させたいと思っております。

ファイルのオプションで以下の設定を行いましたが果たして以下の設定で正しいのか不安です。
また、レコードが他のユーザが使用有無を判断するプログラムはありますでしょうか。

わたくしの検索スキルが低く見つけられないのかもしれません。
初歩的な質問ばかりで恐縮ですがどうぞご教授ください。

・共有モード
・編集済みレコード
・レコードレベルでロックして開く
をONに設定するところまでネットで調べ分かりました。
ただ、
・編集済みレコード
・レコードレベルでロックして開く
の違いが分かりません。
双方とも編集中のレコードについてはロックする設定だと思います。
また、
・レコードレベルでロックして開く
をONにしてもSQLでの更新は無効とのことでした。

よろしくお願いいたします。

[7337] ご教授お願いします。 Name:ダメ五郎 Date:2017/10/13(金) 17:57 [ 返信 ]
こんにちは、お世話になります。

ある配列変数を扱っていて、おかしな現象が起きたので
以下のような、テストコードを作ってイミディエイトウィンドウで
実行してみたら、同じ現象がおきたのですが、試していただけますでしょうか。

Function gts()
Dim goio() As Long
Dim z As Byte
ReDim goio(1 To 12)
z = 4
For n = 1 To 12
goio(n) = z * 1000000
Debug.Print goio(z)

Next n
End Function

要素数12個の配列変数ですが、このコードは問題なく4000000という数値
が並びます。
次に1000000の箇所を10000に替えて再度実行してみるとエラーが出ます。

私のパソコンだけなのでしょうか?
それともコーディングがどこかおかしいのでしょうか?
初心者ではありませんが、専門家でもありません。

お手数おかけしますが、よろしくお願い致します。
バージョンはAccess2010です。

[7338] RE:ご教授お願いします。 Name:ダメ五郎 Date:2017/10/13(金) 18:00
失礼しました。

コード8行目訂正です。

goio(z) ☓



goio(n) ○


よろしくお願いします。

[7339] RE:ご教授お願いします。 Name:ダメ五郎 Date:2017/10/13(金) 18:26
何度もすみません。
半分自己解決です。

変数zもlongにすれば、できました。

配列変数に合わせる必要があったということでしょうか。
しかし1000000だと通るというのも理解できません。

zに入る数値は大きくても20程度なのでバイト型で十分なんですが、
ひとまず動くようにはなりました。

お騒がせしました。

[7333] Access2016 「サブフォーム間のスクロールを同期させる方法」 Name:Bb Date:2017/10/05(木) 16:47 [ 返信 ]
Windows10(64bit) / Access2016

いつも参考にさせていただいております。

「サブフォーム間のスクロールを同期させる方法」
http://hatenachips.blog34.fc2.com/?no=497

でサブフォーム間の連携をとるフォームの参考にさせていただいて
いたのですが、最新のAccess2016では連動しないようで、
ちょっと困惑しています。
(データシート型のサブフォームにすればよいのでしょうが)

APIまで使っての方法ですのでトリッキーなのですが、
出来れば現行のままで使用したいところですが、
何か方法ありますでしょうか?

[7334] RE:Access2016 「サブフォーム間のスクロールを同期させる方法」 Name:hatena Date:2017/10/05(木) 17:42
当方の環境(Windows10(64bit) / Access2016)では一応スクロールが同期しています。
(ただし、最終レコードが表示されると同期しないですが。)

[7336] RE:Access2016 「サブフォーム間のスクロールを同期させる方法」 Name:Bb Date:2017/10/07(土) 17:08
お手間を取らせてしまい申し訳ありません。
そうですか、再現できませんでしたか。こちらの二台のPCで現象が同一だったので、てっきりAccessのバージョンアップのせいかとにらんでおりましたが。

(※Windows64 / Office2016 バージョン1708 bulid 8431.2094で確認)

何か違うのが要因かもしれませんね…こちらでもう一度調べてみたいと思います…。

ありがとうございました。

[7335] フォーム・WEB検索と複数条件検索の組み合わせ Name:FYUN Date:2017/10/06(金) 12:11 [ 返信 ]
当サイトの”複数条件の抽出フォームの設計 その1”と
”AccessでWEB検索のように曖昧検索したい”にある
プログラムをテキスト名とフィールド名だけ変えて組み合わせて
WEB検索と複数条件検索のフォームを作成しました。

最初、複数条件検索フォームを作成し、後でWEB検索機能を加えましたが、
加えた後、複数条件で抽出されなくなりました。

WEB検索機能を外すと、問題なく複数条件で抽出されます。

この2つの機能を組み合わせることは難しいでしょうか。
またWEB検索機能で除外条件(NOT)の場合はどのようにすればよいでしょうか。

お手数ですがよろしくお願いします。

[7329] 規定値を、グループごとに切り替えたい Name:urara Date:2017/10/02(月) 11:44 [ 返信 ]
アクセス2010
ウインドウズ7

Hatena様
いつもありがとうございます。
お忙しいところ誠に申し訳ありません、
ご質問させていただきます。

仕訳伝票用のテーブル

T仕訳明細
日付 
仕訳No 
貸借区分
勘定科目No
勘定科目名
金額
補助No

を元にした
会計の仕訳伝票フォームがあります

メインフォームは、
日付 
仕訳Noで くくっており
同じ仕訳Noのみの伝票が表示されています


サブフォームにはT仕訳明細の
明細が行ごとに表示されています


同じ仕訳Noのレコード内に、ひとつでも
勘定科目No =1000 (勘定科目名=現金)があった場合

そのレコード内の
補助Noは全て1

仕訳Noでくくったレコード内に
もとから
勘定科目No1000(勘定科目名=現金)
がない場合は補助Noが全て2

となるようにしたい

以下は
考えたことなのですが

初めにT仕訳明細の
補助Noの規定値を1にしておく
仕訳Noで
グループ化したクエリを作ればいいかと思ったのですが、
その際、
同じ仕訳No内の、
勘定科目Noが1000が一つでも含まれるグループ は
どうやって表示するのか、
またそこでどう条件付けしたら
規定値が切り替わるのかがわからず、

勘定科目No1000がグループ内に
ひとつでも含まれる場合、

というところでずっと悩んでおります。

やりたいことは、
勘定科目1000現金がないグループと
あるグループでレポートを別個に出したいのです、

この方法以外難しくて考えも浮かばず、

もしお知恵をお借りすることができたら
大変ありがたいです。

申し訳ありません、
どうぞ宜しくお願い申し上げます。

[7330] RE:規定値を、グループごとに切り替えたい Name:hatena Date:2017/10/04(水) 01:34
最終目的が、

> やりたいことは、
> 勘定科目1000現金がないグループと
> あるグループでレポートを別個に出したいのです、

ということなら、
T仕訳明細 に 補助No は不要です。


T仕訳明細 からクエリを作成して、下記のようなフィールドを追加すればいいでしょう。

補助No: (DLookup("仕訳No","T仕訳明細","仕訳No=" & [仕訳No] & " AND 勘定科目No=1000") Is Null)+1


これで、同じ仕訳Noで 勘定科目No=1000 のあるレコードは 1、ないレコードは 0 になります。


ちなみに、テーブル名やフィールド名に全角英字を使ってますが、トラブルのもとですので、英数字は半角にすることをお勧めします。回答では半角にしてます。

[7331] 解決しましたRE:規定値を、グループごとに切り替えたい Name:urara Date:2017/10/04(水) 12:50
Hatena様

ずっと悩んでいたことが解決しました。
イメージ通りのものができました。
誠にありがとうございます。

そもそも補助Noなどの、フィールドを持たせないのですね。
とてもすっきりしました。


ひとつさらにご質問で申し訳ないのですが、

想像以上に、Dlookupはとても重くなるのですね

このご質問の操作については、
取得したデータを
DAOでエクセルに移す際に使用するため、
使用する頻度は少ないので影響はさほどなさそうに感じますが、

クエリで、
現金1000を含む仕訳Noを切り分け番号1,2で
それぞれ出したいレコードを抽出するために
クエリを実行したところ、
数分かかって驚きました。

それなりに重い作業を重ねることは、
マシンにも影響はあるのでしょうか

また、そのためだけに重くなることを避けるには、
更新クエリなどで、補助Noフィールドの
データ自体をテーブルに貼り付けた方が
本体は重くならないのでしょうか。(そういうのは野暮なのでしょうか)

本来は、アクセス向きではない使い方なのかもしれないとも思い
気になり、更にご質問させて頂きました。
また、
> ちなみに、テーブル名やフィールド名に全角英字を使ってますが、トラブルのもとですので、英数字は半角にすることをお勧めします。回答では半角にしてます。

上記の件、
大変参考になりました。本当にご親切にありがとうございます。
今後は半角を使用するように致します。

[7332] RE:規定値を、グループごとに切り替えたい Name:hatena Date:2017/10/04(水) 17:15
DLookupはシンプルに実現できるのですが、件数が多いと重くなります。

重いのが気になるようでしたら、下記の方法を試してみてください。

T仕訳明細からクエリを作成して、下記のように設定します。

フィールド 仕訳No 勘定科目No
表示     レ   □
抽出条件      1000

クエリプロパティの「固有の値」を「はい」に設定。
名前を「Q現金有」等と適切につけて保存します。

SQLビューでは下記のようになります。

SELECT DISTINCT 仕訳No FROM T仕訳明細 WHERE 勘定科目No = 1000;

これで、現金がある仕訳Noのみ出力されます。

さらにクエリを新規作成して、T仕訳明細 と Q現金有 を追加して、
「仕訳No」同士を結合します。デザインビューで下記のように設定します。

フィールド T仕訳明細.*
テーブル  T仕訳明細

SQLビューでは、

SELECT T仕訳明細.* FROM T仕訳明細 INNER JOIN Q現金有;

このクエリで、現金有の仕訳Noのレコードが出力されます。

さらに、このクエリのコピーを作成して、
結合線をダブルクリックして、
「'T仕訳明細'の全レコードと・・・・」のオプションを選択します。
下記のように設定します。

フィールド T仕訳明細.*  仕訳No
テーブル  T仕訳明細   Q現金有
表示    レ       □
抽出条件          Is Null


SQLビューでは、

SELECT T仕訳明細.* FROM T仕訳明細 LEFT JOIN Q現金有 WHERE Q現金有.仕訳No Is Null;

これで、現金を含まない仕訳Noのレコードが出力されます。

これなら高速に処理できると思います。

[7326] ACCESSのデーターベースを読み込んで刳らない。 Name:tokinaito Date:2017/09/26(火) 14:22 [ 返信 ]
今まで問題なく動いていたファイルが下記のような
ことで開けません。どう対処したらよろしいでしょうか。
再インストールですむでしょうか?宜敷お願いします。

データベースに含まれている VBA プロジェクトを読み取れないため、データベースを開くことができません。データベースを開くには、VBA プロジェクトを削除する必要があります。VBA プロジェクトを削除すると、モジュール、フォーム、およびレポートからすべてのコードが削除されます。データベースを開いて VBA プロジェクトを削除する前に、バックアップ コピーを作成することをお勧めします。

[7327] RE:ACCESSのデーターベースを読み込んで刳らない。 Name:kent Date:2017/09/28(木) 09:17
おつかれさまです。原因がわかりませんが、思いついたことだけでも。


最適化は、試しましたか?

vbaのコードの画面から参照設定で、参照できなくてエラーになっている
ところは、ありませんか?

新しく空のデータベースを作って、インポートしてみましたか?

何かのソフトウエアをインストールしませんでしたか?

正しくアクセスが終了しましたか?何らかの原因で、アクセスが
異常終了した場合に、バックアップのldbファイルが残っている。

[7328] 解決RE:ACCESSのデーターベースを読み込んで刳らない。 Name:tokinaito Date:2017/09/28(木) 13:45
kentさんいつも有り難うございます。
2017/9/18日のアップデートで異常が生じているそうです。

とりあえず2013を再インストールして対応します。

[7321] 名前検索後にフォームの文字が全て選択されてしまう Name:NKD48 Date:2017/09/17(日) 13:53 [ 返信 ]
初めて投稿します。

F_編集画面。ページフッダーの担当者欄(テキスト)に、
名字を入力すると検索がかかるようにしています。
該当が1名の場合は、フルネームが自動的に取得されますが
複数人の場合(今回は田中と入力)した場合、
別フォームのF_ユーザー検索が開き、選択ボタンにて選びます。
この方法で名前を取得した場合、
F_編集画面の各テキストの文字が全て
選択された状態になる為、編集しようとした際
文字を全て消さないと編集できません。


Private Sub 担当者2_Change()
Dim db As DAO.Database
Dim rs As Recordset
Dim strSQL As String
Dim qdf As QueryDef

Set db = CurrentDb

strSQL = "SELECT T_ユーザー.* FROM T_ユーザー WHERE T_ユーザー.NNAME Like '" & Me.担当者2.Text & "*'"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If rs.RecordCount = 0 Then
MsgBox "該当者はいません"
Else
rs.MoveLast
If rs.RecordCount = 1 Then
担当者2 = rs("NNAME")
Else
Set qdf = db.QueryDefs!Q_ユーザー検索
qdf.SQL = strSQL
DoCmd.OpenForm "F_ユーザー検索"
End If
End If
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

<F_ユーザー検索>
Private Sub Form_Open(Cancel As Integer)
RecordSource = "Q_ユーザー検索"

End Sub

Private Sub コマンド9_Click()
Forms!F_編集.担当者2 = NNAME
DoCmd.Close
End Sub


Set qdf = db.QueryDefs!Q_ユーザー検索
を使うとダメみたいですが・・・

何か良い方法があれば解決策をお願いします。

※詳細は添付ファイルをご確認ください。

[7322] RE:名前検索後にフォームの文字が全て選択されてしまう Name:hatena Date:2017/09/18(月) 20:33
ダウンロードして確認しました。

「担当者2」テキストボックスの「変更時」イベントで「F_ユーザー検索」フォームを開くコードを記述しているのが不具合の原因です。

なぜそのようにしたのか理由が分かりません。
普通に「登録」ボタンのクリック時にコードを移動すれば問題なく動作します。

ただし、下記の部分でエラーが出ますので、

Me.担当者2.Text

これを、下記に変更してください。

Me.担当者2.Value


Text プロパティはフォーカスがないとエラーになりますので。

[7323] RE:名前検索後にフォームの文字が全て選択されてしまう Name:NKD48 Date:2017/09/18(月) 20:59
hatenaさん、返信ありがとうございます。

>「担当者2」テキストボックスの「変更時」イベントで「F_ユーザー検索」>フォームを開くコードを記述しているのが不具合の原因です。

>なぜそのようにしたのか理由が分かりません。
> 普通に「登録」ボタンのクリック時にコードを移動すれば問題なく動作>します。

なぜそのようにしたかは、担当者2に苗字(姓)だけ入力し、同じ苗字が複数人いる場合(田中など)、別フォームを開いて、目的の人を選択してもらう為にこの様にしました。また、登録ボタンは基本的には最後に押す為、担当者2に入力した時に、仕掛けを作りたいのですが・・・

何か良い方法はありませんか?

[7324] RE:名前検索後にフォームの文字が全て選択されてしまう Name:hatena Date:2017/09/20(水) 10:59
「変更時」イベントは、一文字入力したり、修正のために一文字削除しただけで発生します。入力チェックの用途には適切ではありません。

入力チェックは「更新前処理」「更新後処理」辺りでするのが一般的ですが、別フォームを呼び出すとなると結構複雑になり、難易度が上がります。

登録ボタンのクリック時等で一括して入力チェックするのがシンプルです。


今回のような用途なら私なら担当者はコンボボックスで選択できるように設計します。これだと、VBAなしで、プロパティの設定だけで可能ですし、ユーザーとしても使いやすいと思います。

それ以前にテーブル設計が間違っていますので、それを修正することから始めましょう。

T_マニュアル に「担当者」フィールドがあり、そこにT_ユーザーの NNAME を格納していますが、ここは、T_ユーザーの主キーである「従業員コード」を格納すべきです。これは、データベース設計の基本です。

上記の基本に沿った設計例をアップロードしておきますのでご参考に。

[7325] 解決RE:名前検索後にフォームの文字が全て選択されてしまう Name:NKD48 Date:2017/09/22(金) 22:16
hatenaさん、返信ありがとうございました。

コンボボックスで選択できるように変更したいと思います。
また、「従業員コード」を格納する件も分かりました。

いろいろと、ありがとうございました。

[7212] カレンダーについて今日ではなく、4日後を表示させたい Name:tokinaito Date:2017/07/17(月) 06:49 [ 返信 ]
すみません教えてください。

申請日が月末の場合許可が4日後でその4日後の日付入力をスピード化したいものですので。

例えばテーブルに 日付があり 今日の日付が2017/5/29 ならばカレンダー の右ボックスを

クリックすれば5月のカレンダーが表示されます。

これをクエリーで date+4として2017/6/2とフォームのフィールドに表示させカレンダーの右ボックスをクリックし6月と表示させたいのですが、できませ

ん。何か手立てがあれば

ご教示ください。

テーブルでは過去の日の日付が入力されていれば当該月のカレンダーが表示されます。

[7213] RE:カレンダーについて今日ではなく、4日後を表示させたい Name:tokinaito Date:2017/07/17(月) 06:54
すみません捕捉します。4日後の許可ではなく4日後の予定日です。

したがって5日後になるかあるいは10日後になるかということです。

[7216] RE:カレンダーについて今日ではなく、4日後を表示させたい Name:kent Date:2017/07/18(火) 14:51
お疲れ様です。
非連結のテキストボックスを張り付けて
コントロールソースに
DateAddの関数を組み込んで
書式に日付を選択する。

というのは、どうですか?

[7237] RE:カレンダーについて今日ではなく、4日後を表示させたい Name:tokinaito Date:2017/07/27(木) 11:22
kent様いつもお返事有り難うございます。
カレンダーコントロールでこのような処理は
無理みたいですね。

[7239] RE:カレンダーについて今日ではなく、4日後を表示させたい Name:kent Date:2017/07/27(木) 15:18
お疲れ様です。現在のテキストボックスでのカレンダ表示は、ちょっと
小さいかと思います。

カレンダーコントロールは、昔、VBで使ったことがありますが、イマイチでした。それで、vbaを使って、フォームにラベルコントロールを
6週間分つまり、6×7日の42個のラベルコントロールを張り付けて
自作でつくりました。土日は、よいのですが、祭日については、別に
祭日のテーブルを作り、そのテーブルから色を付けるようにしました。
そんなに難しくは無いかと思います。

フォームロード時にその年の月と最初の曜日を調べて順次表示。該当しないその月の最初の週や最後の週は、非表示にしています。

[7320] 解決RE:カレンダーについて今日ではなく、4日後を表示させたい Name:tokinaito Date:2017/09/13(水) 07:41
勉強してみます。わからないことがあったらまた教えてください。

[7295] 複数抽出条件について Name:jun Date:2017/08/21(月) 21:29 [ 返信 ]
製品を取り扱っており、場所や検査を記号で管理しています。
Fの日付があり、次のレコードまたは2つ下のレコードがKのみ(日付がnull)抽出がしたいです。

テーブル1
製品番号、製品名
テーブル2
製品番号、番号、記号、場所、日付(実行した日)
記号の種類・・・A(A倉庫)、F(工場)、M(M倉庫)、K(検査)

クエリ テーブル1&2
例)
NO10 くぎ 1 A A倉庫 7/1
NO10 くぎ 2 M M倉庫 7/2
NO10 くぎ 3 A A倉庫 7/3
NO10 くぎ 4 F 工場 7/4
NO10 くぎ 5 K 検査 

NO11 ねじ 1 A A倉庫 7/1
NO11 ねじ 2 M M倉庫 7/2
NO11 ねじ 3 F 工場 7/3
NO11 ねじ 4 A A倉庫 
NO11 ねじ 5 K 検査 

NO12 ボルト 1 A A倉庫 7/1
NO12 ボルト 2 F 工場 7/3
NO12 ボルト 3 M M倉庫 7/5

希望の抽出 Fの次または次の次がKでKの日付が空白の場合
結果
NO10 くぎ F 工場 7/4
NO12 ねじ F 工場 7/3


お手数ですがよろしくお願いします。

[7298] RE:複数抽出条件について Name:hatena Date:2017/08/23(水) 16:13
希望の抽出 は下記になると思うのですが、

結果
NO10 くぎ F 工場 7/4
NO11 ねじ F 工場 7/3

下記間違いでしょうか。

また、番号は、同じ製品番号内では必ず連番になることは保証されてますか。

[7300] RE:複数抽出条件について Name:jun Date:2017/08/23(水) 21:22
返信ありがとうございます。

結果のところが一部間違っていました。すみません。
番号は必ず連番になります。

製品によって番号が1〜3までや1〜10までと混在しています。

抽出条件ですが、初めに質問した内容から変更したく

Fから次のではなくて、
一番最後(必ずK)から1番目と2番目の番号に日付が入っており、Kの日付が入っていないものという条件でお願いします。
例のNO12はKがありませんが、今回作成したいものには当てはまらない製品のため、除外でお願いします。作成したいものはK(検査)が含まれている製品のみです。

例)
NO10 くぎ 1 A A倉庫 7/1
NO10 くぎ 2 M M倉庫 7/2
NO10 くぎ 3 A A倉庫 7/3
NO10 くぎ 4 F 工場 7/4
NO10 くぎ 5 K 検査 

NO10の最後の番号は5(k)で日付はNULLで、前の番号(4)の日付があるもののみ抽出。
製品によっては途中でKがある場合がありますので、必ず一番最後の番号が条件になります。

お手数ですがよろしくお願いします。

[7313] RE:複数抽出条件について Name:朱色 Date:2017/09/04(月) 21:32
Kの情報がほしいのか、手前の情報がほしいのか分かりませんが・・・とりあえずKの情報を抜くパターンで考えてみました。

Q1:
SELECT T2.製品番号, MAX(T2.番号) AS 番号の最大
FROM テーブル2 AS T2
GROUP BY T2.製品番号;

Q2:
SELECT T2.製品番号, T2.番号, T2.記号, T2.日付
FROM ((Q1 INNER JOIN テーブル2 AS T2
ON (Q1.番号の最大 =T2.番号)
AND (Q1.製品番号 =T2.製品番号))
INNER JOIN テーブル2 AS T2_1
ON (Q1.番号の最大-1=T2_1.番号)
AND (Q1.製品番号 =T2_1.製品番号))
INNER JOIN テーブル2 AS T2_2
ON (Q1.番号の最大-2=T2_2.番号)
AND (Q1.製品番号 =T2_2.製品番号)
WHERE ((T2.‭記号="K")
AND (T2.日付 Is Null)
AND (T2_1.日付 Is Null)
AND (T2_2.日付 Is Null));

前提として、テーブル2の番号に飛び番がない、2つ手前まで存在している、などがあります。
「Q1.番号の最大-1」「Q1.番号の最大-2」と書いてしまっていますので。
そちらを可変にする・NULL対応するなどすれば、変更はできるかもしれません。
手前情報が必要でしたら、SELECT を T2 ではなく T2_1.〜 や T2_2.〜 に変更してください。
確認はしていませんが、たぶんNULLじゃなければそれなりに情報が取れるはずです...たぶん。

[7319] RE:複数抽出条件について【解決】 Name:jun Date:2017/09/08(金) 12:13
返事遅くなりましてしみません。

アドバイスありがとうございました。

[7315] 別のファイルのフォームを開ける方法について Name:やすきち Date:2017/09/06(水) 11:23 [ 返信 ]
いつもこのサイトで感心しながら勉強させて頂いております。
私も一点、教えていただきたく投稿させていただきました。


同一フォルダ内に2つのMDBファイルがあります。

仮にファイルA とファイルB(Form_@、Form_Aが存在)とします。

ファイルAのフォーム上に2つのコマンドボタンを作成し、

ファイルB(Form_@) と ファイルB(Form_A)が各々開くように

したいのですが、そのようなことはできるものでしょうか。

宜しくお願い致します。


環境:OS Windows 7
   Access2010

[7316] RE:別のファイルのフォームを開ける方法について Name:kent Date:2017/09/06(水) 17:02
お疲れ様です。

ぐぐると出てきました。

http://www.accessclub.jp/bbs3/0141/superbeg48712.html

いまは閉じてしまったAccessClubのホームページより。

[7317] RE:別のファイルのフォームを開ける方法について Name:hatena Date:2017/09/06(水) 17:19
kentさんのリンク先の方法が一般的ですね。

現在のAccessのウィンドウとは別に、Accessウィンドウが開いて、そこにフォームが表示されることになります。


もし、現在のAccessのウィンドウ内に、別ファイルのフォームを開きたい場合は、参照設定を使うう方法があります。


ファイルBの標準モジュールに下記の関数を作成しておく。

Public Function BOpenForm(FormName As String)
  Docmd.OpenForm FormName acNormal
End Sub

ファイルAのVBEの参照設定に、ファイルB を追加する。

ァイルAのフォーム上のコマンドボタンのクリック時に下記のように記述する。


BOpenForm "フォーム1"

これで、フォームA内のフォームと同様に開き、同様に扱えます。

[7318] RE:別のファイルのフォームを開ける方法について Name:やすきち Date:2017/09/06(水) 18:12
kent 様 hatena様

素早いご回答ありがとうございました。
後程、トライしてみます。
取り急ぎ、お礼申し上げます。

[7306] 異なるレポートの両面印刷について Name:mikami Date:2017/08/31(木) 11:55 [ 返信 ]
2種類のレポートがあり、統一されたナンバーでリレーションシップしています。この場合VBAでレポートの両面印刷は可能なのでしょうか。プリンタは両面印刷対応です。

[7307] RE:異なるレポートの両面印刷について Name:hatena Date:2017/09/01(金) 10:29
同じナンバーのレポートをそれぞれ表面、裏面に配置したいということでしょうか。

2つのレポートの同じナンバーのレコード件数は1件でしょうか。それとも、複数件でしょうか。

2つのレポートのレコードソースのデータの関係は、一対一、一対多、多対多
のどれでしょうか。

実際のデータ例を出して説明してもらうとよくわかると思います。

[7308] RE:異なるレポートの両面印刷について Name:mikami Date:2017/09/01(金) 15:09
早速の返信ありがとうございます。
請求書に転記する前の日報レポートなのですが、表には日報NO、現場名、相手の宛先、詳細には商品、個数、金額とあります。
裏にしたいレポートは共通する日報NO、現場名、サブレポートで人工明細と使用材料があります。

データ関係は一対多だと思います。

[7309] RE:異なるレポートの両面印刷について Name:hatena Date:2017/09/01(金) 19:37
表も裏も、一つの 日報NO に対して複数のレコードがあるということでしょうか。

表も裏も必ず1ページに収まる件数ならば、
日報NO でグループ化したクエリを作成して、それをレコードソースとするレポートを作成して、その詳細セクションに、表のレポートと裏のレポートをサブレポートとして配置すればいいでしょう。

表のレポートと裏のレポートの間に改行コントロールを配置しておけば、裏のレポートは2ページ目(裏面)になります。

[7312] RE:異なるレポートの両面印刷について Name:mikami Date:2017/09/04(月) 15:32
グループ化のクエリのことがわかりませんが全体的にはつかめたので
調べてやってみようと思います。

ありがとうございました。

[7314] RE:異なるレポートの両面印刷について Name:hatena Date:2017/09/05(火) 15:50
現状のテーブル構成が明確でないのですが、

親テーブル(表裏共通)
日報NO、現場名、相手の宛先

表のテーブル
日報NO、商品、個数、金額

裏のテーブル
日報NO、人工明細、使用材料

という感じでしょうか。


親レポートは、親テーブルから作成して、
そこの詳細に表の明細レポート、裏の明細レポートをサブレポートとして配置して、表のサブレポートと裏のサブレポートの間に改行コントロールを配置すればいいかと思います。

[7310] レポートでの線の太さ Name:っっ Date:2017/09/02(土) 16:42 [ 返信 ]
レポートなどで、細い線を書きたい場合は、どのようにしたらできますか?
線の種類の選択では1の次は0.25のヘアラインになっていて極端です
1では太いんですよね
規定のポイントでしか選択できず、種類も少ないです

0.75や0.5などの線を引きたいです

[7311] RE:レポートでの線の太さ Name:hatena Date:2017/09/02(土) 18:11
直線コントロールの代わりに、四角形コントロールを使えばとどうでしょうか。

横罫線の場合は、高さを上手く調整すると、細線と1ポイントの中間の太さになります。
縦罫線なら、幅を調整します。

[7301] レポートの帳票 Name:あ Date:2017/08/30(水) 18:25 [ 返信 ]
ACCESSの帳票でレポートをグラフで印刷します。レーダーチャートをPDF化する場合、

DoCmd.OutputTo acOutputReport, FILENAME, acFormatPDF, myWSH.SpecialFolders("Desktop") & "\PDF\" & FILENAME & ".pdf"

を行うとグラフが□になります。

いきなりPDFを印刷ドライバに設定して、

DoCmd.OpenReport FILENAME, acViewNormal

とレポートを印刷するとレーダーチャートが正しくPDFで表示されます。
いきなりPDFは今のところ、体験版の為、ACCESS2007標準機能のDoCmd.OutputTo acOutputReportでレーダーチャートをPDF化したいのですが、どうやれば改善するのでしょうか?ADOBEの問題?

[7305] RE:レポートの帳票 Name:kent Date:2017/08/31(木) 11:32
お疲れ様です。

Access2000でPDFの印刷をしたことがあります。
当時は、PDFのライターが手に入らなくて、本を買って、調べたことがあります。
アメリカ人でAccess専門のプログラマ−で、モジュールにゴリゴリと本の内容を書き込んだ覚えがあります。今では、忘れました。

レポートの印刷でプリンタを選択した時にPDFoeqで印刷するのがだめなのでしょうか?
レポートのデザイン画面からページ設定でプリンタを選択できますが、その時にPDFを選択してOKで登録しておけば、次回からその形式で印刷されます。
そういうことではない?

[7302] nullの場合エラー表示をなくし印刷を回避したい Name:tokinaito Date:2017/08/31(木) 09:46 [ 返信 ]
すみません質問です。下記式により印刷する場合、TXT1・TXT2に日付を入力し
TXT3以降空欄の場合エラーを回避し印刷をしないようにするには、どうすれば
よろしいでしょうか。

Private Sub 申請日_Click()
DoCmd.RunCommand acCmdSaveRecord


DoCmd.OpenReport "受け取り1", acViewNormal, , "普軽別 ='" & "軽" & "' And [申請日]=#" & [TXT1] & "# "
DoCmd.OpenReport "受け取り2", acViewNormal, , "普軽別 ='" & "軽" & "' And [申請日]=#" & [TXT2] & "# "
DoCmd.OpenReport "受け取り3", acViewNormal, , "普軽別 ='" & "軽" & "' And [申請日]=#" & [TXT3] & "# "
DoCmd.OpenReport "受け取り4", acViewNormal, , "普軽別 ='" & "軽" & "' And [申請日]=#" & [txt4] & "# "
DoCmd.OpenReport "受け取り5", acViewNormal, , "普軽別 ='" & "軽" & "' And [申請日]=#" & [txt5] & "# "


End Sub

[7303] RE:nullの場合エラー表示をなくし印刷を回避したい Name:kent Date:2017/08/31(木) 11:17
お疲れ様です。
On Error Resume Next
を調べてください。
エラーが発生したら、次のステップに進みます。

[7304] 解決RE:nullの場合エラー表示をなくし印刷を回避したい Name:tokinaito Date:2017/08/31(木) 11:22
kentさま。解決しました。有り難うございました。

[7296] レポートにおける可変項目の縦合計について Name:Kiara MAIL Date:2017/08/23(水) 12:02 [ 返信 ]
hatena様、

先日はお世話になりました。また1つお知恵をお借り出来ればとご連絡させて頂きました。

今回の対象はレポートです。
実施したい事は各商品の品番ごとの縦合計です。

印刷対象のデータは、選択された商品で出荷を選択されたものをクエリでクロス集計してTBL化し、そのTBLをレポートに利用しております。

レポートの概要は、

【ヘッダー】
[問屋名][商品名]

【ページヘッダー】
[受付日][小売店名][品番01][品番02][品番03]…

【詳細】
各品番の数量が記入されます。

問屋名でグループ化して改ページをしているので、問屋フッダーに各商品の縦合計としてコントロールソースに=sum([品番01])の様にセットすると合計は求められました。

ここで問題なのですが、品番01の部分が可変であり商品によって変わります。この様な場合、どの様に対処すれば縦合計の表示をすることが可能でしょうか?

ご教示頂けると幸いです。お手数をお掛け致しますが、宜しくお願い致します。

[7297] RE:レポートにおける可変項目の縦合計について Name:hatena Date:2017/08/23(水) 16:09
クロス集計クエリで列名が可変ということですね。

下記で2つの方法を紹介していますか、「クロス集計クエリの列名を固定する方法」の項目を参考にしてください。フォームで説明してますか、レポートでも同じです。

列名が変化するクロス集計クエリと連結するフォーム - hatena chips


また、VBAで動的にコントロールソースを書き換える方法は、下記が参考になるでしょう。

クロス集計クエリーからのレポート作成

[7299] 【解決】RE:レポートにおける可変項目の縦合計について Name:Kiara MAIL Date:2017/08/23(水) 17:13
hatena様、

お世話になります。Kiaraです。

ご回答ありがとう御座いました!!

まさに↓こちらでした。
Me("Total" & cnt).ControlSource = "=Sum([" & fld.Name & "])"


外部モジュールに以下の変数をテストで作り

Public Function CS01() As String
CS01 = "[品番01]"
End Function

項目のコントロールソースのプロパティで
=SUM(CS01())

的にプロパティを何とかする事しか考えつかず行き詰ってました。


可変のレポートについては、ご紹介頂いたhatena様のリンクを参考
にさせて頂いて作成させて頂いていたので即座に解決致しました。
-------------------------------------------------------------
Dim i As Integer
Dim db As DAO.Database
Dim td As TableDef
Dim fld As DAO.Field

Me.RecordSource = ""
Me.RecordSource = "37出荷印刷クロス集計TBL"

Set db = CurrentDb()
Set td = db.TableDefs(Me.RecordSource)

For i = 0 To td.Fields.count - 1
Set fld = td.Fields(i)
Me("lbl" & i).Caption = fld.Name
Me("txt" & i).ControlSource = fld.Name
If i > 5 Then
Me("txtf" & i).ControlSource = "=Sum([" & fld.Name & "])"
End If
Next

Me.商品ラベル.Caption = s_select_f_syohin_mei
Me.タイプラベル.Caption = s_select_f_type

End Sub
-------------------------------------------------------------
いつも本当にお力をお貸し頂き、助けて頂き、本当に感謝致します。

ありがとう御座いました!!
今後とも、宜しくお願い致します。


1件〜15件(全904件)  1345678910       <RSS>    【管理者へ連絡


無料レンタル掲示板・日記・ブログ Progoo