Access VBA質問箱 IV

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

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


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

【10786】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/22(土) 10:38 -

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

ご連絡ありがとうございます。

>Currentdb.Execute "INSERT INTO テーブル名( ID, 日時 ) " _
>        & "VALUES(" & Me!IDテキストボックス名 _
>        & ", Now()) ", dbFailOnError

上記にて実行したところ、

実行時エラー'3421':
データ型の変換エラーが発生しました。と止まります。

これは、テーブル名を指定して「ID」と「日時」のフィールド名の
設定がおかしいのでしょうか?

大変素人質問で申し訳ありませんが、ご教示お願い致します。
・ツリー全体表示

【10785】Re:アクセス履歴をとりたい
回答  Gin_II  - 08/11/21(金) 16:17 -

引用なし
パスワード
   > この「ログイン」ボタンを押した時に、「ID」と日時を別テーブルで履歴として
> 残したいのです。

> 次フォームへ進める

DoCmd.OpenForm 〜 を使っていると思いますが、この前の行ぐらいで、

Currentdb.Execute "INSERT INTO テーブル名( ID, 日時 ) " _
        & "VALUES(" & Me!IDテキストボックス名 _
        & ", Now()) ", dbFailOnError

を追加してみてください。
・ツリー全体表示

【10784】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/21(金) 15:52 -

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

ご連絡ありがとうございます


>今どこまで出来ていて、どの部分で躓いているんですか?

手落ちで申し訳ございませんでした。

現在は、ログイン画面の作成が完了し「ID」「パスワード」の登録テーブルも
作成、ログイン画面で「ID」「パスワード」をテキストボックスに入力し「ログイン」ボタンを押し、登録テーブルの「ID」「パスワード」が合致すれば次フォームへ進める所まで作成しております。

この「ログイン」ボタンを押した時に、「ID」と日時を別テーブルで履歴として
残したいのです。

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

【10783】Re:アクセス履歴をとりたい
発言  neptune  - 08/11/21(金) 13:57 -

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

>ログイン画面を作成し、「ID」、「パスワード」を設定しログインするのですが、
>その際にログインした「ID」と「日時」を別テーブルに保存したいのですが、
>やり方が分かりません。
ザックリ分けると
・ログイン画面の作成
・ログイン画面に入力されたデータをテーブルに保存する
の2つになると思いますが、

今どこまで出来ていて、どの部分で躓いているんですか?
肝心な部分が抜けてます。
・ツリー全体表示

【10782】Re:レポート出力について
お礼    - 08/11/21(金) 11:24 -

引用なし
パスワード
   有難うございました。やっと思い通りの仕上がりになりました。
長々とお付き合いいただいて、根気よく教えてくださり、本当に有難うございました。(^^)
以後研鑽いたします。<(_ _)>
・ツリー全体表示

【10781】Re:レポート出力について
回答  Gin_II E-MAIL  - 08/11/21(金) 11:08 -

引用なし
パスワード
   あ。ちょっと前回のレスで間違いが ^^;

フォームのレコードソースプロパティを、

SELECT * from Sheet1_2クエリ

に変更して、Private Sub cmd1_Click() 内の、

> If Len(strWhere) > 0 Then
>  Me.RecordSource = strSql & "WHERE " & Mid(strWhere, 5)
>  Debug.Print strSql & "WHERE " & Mid(strWhere, 5)
> Else
>   Me.RecordSource = strSql
> End If



If Len(strWhere) > 0 Then
 Me.Filter = Mid(strWhere, 5)
 Me.FilterOn = True
Else
  Me.Filter = ""
  Me.FilterOn = False
End If

に変更してみてください。


>Private Sub cmd3_Click()

こちらは、このままで大丈夫だと思います。
・ツリー全体表示

【10780】アクセス履歴をとりたい
質問  ひで  - 08/11/21(金) 10:37 -

引用なし
パスワード
   お世話になります。

初めて投稿しますのでよろしくお願い致します。

ログイン画面を作成し、「ID」、「パスワード」を設定しログインするのですが、
その際にログインした「ID」と「日時」を別テーブルに保存したいのですが、
やり方が分かりません。
どうかご教示の程よろしくお願い致します。
・ツリー全体表示

【10779】レポート出力について
質問    - 08/11/21(金) 9:15 -

引用なし
パスワード
   >Gin_IIさん
----------------------------------
Private Sub cmd3_Click()
DoCmd.OpenReport ReportName:="REPORT1", View:=acViewPreview, WhereCondition:=Me.Filter
Debug.Print Me.Filter
End Sub
----------------------------------
がcmd3_Click()のコード全部ですので、
> フォーム側の
>
> Me.RecordSource = なんちゃら
>
> になっている部分を、
>
> Me.Filter = なんちゃら
> Me.FilterOn = True
に直すというのは、
>  Reports!REPORT_1.Filter = Me.Filter
>  Reports!REPORT_1.FilterOn = True
の部分で書き直してあるという認識だったのですが...。
ともかく、イミディエイトウィンドウに表示されているのは、
----------------------------------
SELECT * from Sheet1_2クエリ WHERE アルファベット = 'X' AND 数値 BETWEEN 2 AND 6
----------------------------------
というところだけです。その後のコマンドが実行されていないようです。
・ツリー全体表示

【10778】Re:質問事項他について
回答  Gin_II  - 08/11/20(木) 17:22 -

引用なし
パスワード
   > 回答いただいたコードに書き直して見ましたが、

> フォーム側の
>
> Me.RecordSource = なんちゃら
>
> になっている部分を、
>
> Me.Filter = なんちゃら
> Me.FilterOn = True

この部分も変更していますか?

変更しても、レポートで、抽出がされていないのであれば、

> DoCmd.OpenReport ReportName:="REPORT1" _
>         , View:=acViewPreview _
>         , WhereCondition:=Me.Filter

この下の行に、

Debug.Print Me.Filter
を追加して、イミディエイトウィンドウに表示される内容をアップしてください。

ただ、このスレッドも長くなってきたし、当初の質問とは内容が変わっていますので
新規スレッドにしてもらったほうがいいですね。
・ツリー全体表示

【10777】Re:質問事項他について
質問    - 08/11/20(木) 17:07 -

引用なし
パスワード
   回答いただいたコードに書き直して見ましたが、やはり全データがプレビューされてきます。
・ツリー全体表示

【10776】Re:エラーが解決できません
お礼  初心者  - 08/11/20(木) 16:48 -

引用なし
パスワード
   ▼Gin_II さん:
>> フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。
>
>同じフォーム(同じレコードソース)に、リース会社・銀行関係が入っている
>のでしょうか?
>
>フィルタ対象というコントロールは、何を使っているのでしょうか?
>オプショングループであれば、そこに銀行関係を追加して、
>
>> If Me.フィルタ対象 = 1 Then
>>   strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>>   StrOrder = "部門名フリガナ"
>> Else
>>   strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>>   StrOrder = "リース会社フリガナ"
>> End If
>
>Select Case Me!フィルタ対象
>  Case 1
>    strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>    StrOrder = "部門名フリガナ"
>  Case 2
>    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>    StrOrder = "リース会社フリガナ"
>  Case 3
>    strCrit = "銀行関係フリガナ like '[" & strItem & "]*'"
>    StrOrder = "銀行関係フリガナ"
>End Select
>
>のようにすれば大丈夫だと思います。
>
>
>> 上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。
>
>もしかして、
>・部門名
>・リース会社
>・銀行関係
>は、それぞれ別のテーブルとかですか?


Gin_II様へ
本当にありがとうございます。
上記のプログラムを修正したら、無事に動くようになりました。
本当にありがとうございます。

まだ、Access,VBAをはじめて数日で困っていたところでした。とても感謝しています。

まだまだ、データベースの製作途中で、分からない事がたくさんありますが、また、機会があったらご教授をして頂けたら嬉しいです。
本当にありがとうございました。
めげずに頑張っていきます。
・ツリー全体表示

【10775】Re:質問事項他について
回答  Gin_II  - 08/11/20(木) 16:29 -

引用なし
パスワード
   私が回答した内容
> DoCmd.OpenReport ReportName:="REPORT1" _
>         , View:=acViewPreview _
>         , WhereCondition:=Me.Filter

波 さんが書いた内容
>  DoCmd.OpenReport "REPORT_1", acViewPreview
>  Reports!REPORT_1.Filter = Me.Filter
>  Reports!REPORT_1.FilterOn = True

レポートのフィルタプロパティを直接操作するのなら、レポートの
開く時イベントなどでしてやる必要があったと思います。
・ツリー全体表示

【10774】Re:エラーが解決できません
発言  Gin_II  - 08/11/20(木) 16:20 -

引用なし
パスワード
   > フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。

同じフォーム(同じレコードソース)に、リース会社・銀行関係が入っている
のでしょうか?

フィルタ対象というコントロールは、何を使っているのでしょうか?
オプショングループであれば、そこに銀行関係を追加して、

> If Me.フィルタ対象 = 1 Then
>   strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>   StrOrder = "部門名フリガナ"
> Else
>   strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>   StrOrder = "リース会社フリガナ"
> End If

Select Case Me!フィルタ対象
  Case 1
    strCrit = "部門名フリガナ like '[" & strItem & "]*'"
    StrOrder = "部門名フリガナ"
  Case 2
    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
    StrOrder = "リース会社フリガナ"
  Case 3
    strCrit = "銀行関係フリガナ like '[" & strItem & "]*'"
    StrOrder = "銀行関係フリガナ"
End Select

のようにすれば大丈夫だと思います。


> 上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。

もしかして、
・部門名
・リース会社
・銀行関係
は、それぞれ別のテーブルとかですか?
・ツリー全体表示

【10773】Re:質問事項他について
質問    - 08/11/20(木) 16:11 -

引用なし
パスワード
   抽出のほうは、一応二列でIDとアルファベットが表示されるようになりました、有難うございます。
別窓で教えていただいているレポート出力についてですが、
------------------------
Private Sub cmd3_Click()
 DoCmd.OpenReport "REPORT_1", acViewPreview
 Reports!REPORT_1.Filter = Me.Filter
 Reports!REPORT_1.FilterOn = True

End Sub
------------------------
のように書いているのですが、全部のデータが出力されてしまう状態です。
うまくフィルターにかかっていないのでしょうか?
・ツリー全体表示

【10772】Re:エラーが解決できません
質問  初心者  - 08/11/20(木) 15:11 -

引用なし
パスワード
   早速のお返事と迅速な対応、とても感謝しております。

Gin_IIさんが教えて頂いたとおりに、プログラムを入力しましたら、エラーは無事に消す事が出来ました。
本当にありがとうございました。

エラーは消えて、フィルターの検索条件である「」部門名フリガナ」のフィルター検出はできるようになりましたが・・・

フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。

上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。下記のプログラムでは検出されないのでしょうか?

〜〜省略〜〜

 Else
    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
    strCrit = "リース会社フリガナ "

また、もう一つフィルターにある「銀行」での検索条件を追加しようと思っておりますが、そのようにしたらよいのでしょうか。

一応、参考書を読んで頑張っていますが、未だに先に進む事が出来ません。。。

もし、お時間がありましたらご教授の方を宜しくお願い致します。
・ツリー全体表示

【10771】Re:質問事項他について
発言  Gin_II  - 08/11/20(木) 13:28 -

引用なし
パスワード
   > 実はコンボボックスをクリックすると出てくる値が見えていないんです。

どこに出てくる値がですか?
なんとなく想像はできますが、なるべくきちんと説明をしてください。


> IDの前に何かプラスのようなものがついていて、開くと他のテ-ブルの
> データが出てくるのですが、あまり気にしていませんでした。

これもどこに?
たぶん、サブデータシートのことだとは思いますが。

だとすると、

見積テーブル:見積ID, 見積日, ・・・
見積明細テーブル:見積ID, 明細ID, 商品ID, ・・・

のようなテーブルがあった場合に、見積テーブルをデータシートビューで
開くと、

 見積ID 見積日
+  1  2008/11/20
+  2  2008/11/20
−  3  2008/11/20
 明細ID 商品ID
   1  A0001
   2  A0002

のように表示される機能ですね。


とりあえず、コンボボックスの設定を変更すれば、できるようには
なると思います。

> (2)コンボボックスの集合値ソース↓
> 「SELECT alfabetコード.ID, alfabetコード.アルファベット FROM alfabetコード;」
> 列数:1、連結列1

値集合ソース:SELECT alfabetコード.ID
          , alfabetコード.アルファベット
       FROM alfabetコード;
列 数:2
連結列:2
列 幅:1cm;1cm

のように変更してください。
※列幅は、適当に値を変更してもいいです。

続いて、VBAの変更箇所。

>  If Not IsNull(Me!Combo) Then
>   strWhere = strWhere & " AND アルファベット = '" & Me!Combo & "'"
>  End If

 If Not IsNull(Me!Combo) Then
  strWhere = strWhere & " AND アルファベット = '" & Me!Combo.Column(1) & "'"
 End If

とすれば、大丈夫だと思います。
・ツリー全体表示

【10770】Re:質問事項他について
質問    - 08/11/20(木) 12:11 -

引用なし
パスワード
   実はコンボボックスをクリックすると出てくる値が見えていないんです。選択は出来ているらしいんですが。
alfabetテーブルがおかしいのでしょうか?
IDの前に何かプラスのようなものがついていて、開くと他のテ-ブルのデータが出てくるのですが、あまり気にしていませんでした。
・ツリー全体表示

【10769】Re:質問事項他について
発言  Gin_II  - 08/11/20(木) 11:44 -

引用なし
パスワード
   > コンボボックスにアルファベットを表示させることは出来ないですか?

変更後は、アルファベットが表示されませんか?
変更前は、数値が表示されていたと思いますけど。


> (2)コンボボックスの集合値ソース↓
> 「SELECT alfabetコード.ID, alfabetコード.アルファベット FROM alfabetコード;」
> 列数:1、連結列1

テーブル名:alfabetコード
 フィールド名:ID
        アルファベット

ID アルファベット
1  A
2  B
3  C

のようなテーブルがあって、それをコンボボックスの値集合ソースに
使っているんですよね?

で、変更前の設定では、IDフィールドを使っている(表示・値)ので、
VBAで参照した場合に、1〜3 が使われ、

> WHERE アルファベット = '3' AND 数値 BETWEEN 0006 AND 0100

このような状態になっていたんです。
で、当然ながら、その条件に一致するレコードがないため、

> エラーはまったくでない代わりに、データが一個も抽出されなくなりました。

こうなります。
・ツリー全体表示

【10768】Re:エラーが解決できません
回答  Gin_II  - 08/11/20(木) 11:39 -

引用なし
パスワード
   >     strCrit = "部門名フリガナ like `[" & strItem & "]*`"
>     strCrit = "リース会社フリガナ like `[" & strItem & "]*`"

失礼しました。必要なものまで削除させちゃいましたね。

strCrit = "部門名フリガナ like '[" & strItem & "]*'"
strCrit = "リース会社フリガナ like '[" & strItem & "]*'"

元のコードだと、シングルクォーテーションがなんかヘンです。
・ツリー全体表示

【10767】Re:エラーが解決できません
発言  neptune  - 08/11/20(木) 10:56 -

引用なし
パスワード
   ▼初心者 さん:
こんにちは

横から失礼
>>〜〜省略〜〜
> End If
>  
   debug.print strcrit 'これを追加
>  →Me.Filter = strCrit
>   Me.OrderBy = StrOrder
「これを追加」を追加すると、イミディエイトウィンドウにstrCritの
内容が出力されますので、それに間違いがないか確認なさってはどうですか?
実行時エラー`3125`:
はstrCritの内容が不適当である。旨のエラーみたいですから。

判らなければ、出力された内容をここに書き込んでみては?
その方がアドバイスをもらい易いですよ。
・ツリー全体表示

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