bonaron の回答履歴

全1000件中1~20件表示
  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Access開いているブックのセル値参照

    AccessのVBAからExcelのブック(通常既に開いています)のセルの値を参照するものを作成 しているのですが、うまくいきません。ご教授頂けないでしょうか。 Set Set myXlsSheet = myXls.Worksheets("sheet1") の行がインデックスが有効範囲にあり ません。とエラーがでます。 ここで既に開いているExcelブック自体をWorkbooks.open を使用せずにオブジェクト自体をset して、各シート値を参照することができないでしょうか。 現状できているコード Dim myXls As Object Dim myXlsSheet As Object Set myXls = CreateObject("Excel.Application") Set myXlsSheet = CreateObject("Excel.Sheet") myXls.Visible = False ' Set myXlsSheet = myXls.Workbooks.Open("C:\test.xls", 1) 'これだとまた同じファイルを開いて処理するため処理が遅くなる。 Set myXls = myXls.Workbooks("test.xls") 'インデックスが有効範囲にありません。のエラーがここで出ます。 Set myXlsSheet = myXls.Worksheets("sheet1") Debug.Print myXls.WorksSheets("sheet1").Cells(1, 1).Value myXls.Close Set myXls = Nothing myXls.Quit Set myXlsSheet = Nothing MsgBox "完了"

  • アクセスのレポート、VBAで罫線を引く方法

    初心者です。いろいろ調べてみて、ここまでたどりつきましたが(どなたかの質問を参考に)、これ以上わからなくなったのでこちらに投稿しました。 Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) Me.ScaleMode = 1 Me.ForeColor = 0 '一番左の縦線 Me.Line (0, 120)-(0, 6680) End Sub 上記のコードで、罫線を引く方法はわかりました。ただ、私がやりたいことは、全てのレコードに対して線を引く方法でなく(それであれば、VBAを使うほどでもないので)、特定の位置に線を引く方法なのです。 もっとわかりやすく言うと、A4用紙に2つのレコードが印刷されるレポートになっております。その2つのレコードの真ん中に、いつも線を引く、ということをさせたいのです。 (要するに、切り取り線です) このような場合、どうしたら可能になるか、どなたかヒントをいただけないでしょうか。

  • Access2007 データ型エラーについて

    お世話になっております。 下記のVBAでコードを数値型からテキスト型に変更したところ、「抽出条件でデータ型が一致しません。」というエラーが出ました。 デバッグをクリックすると、dbs.Execute strSQLの部分が黄色に反転しています。 VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。 よろしくお願いいたします。 Private Sub 在庫差引_Click() Dim dbs As Database Dim rst As Recordset Dim strSQL As String Set dbs = CurrentDb Set rst = Me!サブフォーム.Form.RecordsetClone With rst .MoveFirst Do Until .EOF strSQL = "UPDATE マスター " & _ "SET 在庫数 = NZ(在庫数) - " & Nz(!数量, 0) & " " & _ "WHERE コード = " & !コード dbs.Execute strSQL .MoveNext Loop .Close End With End Sub

  • アクセスaccess合計の出し方について

    アクセスaccess のレポート作成時の合計の出し方について。 あるセル(画像参照:落込日)に日付けを入力した場合に、 下記(3)点をレポートにて作成したいです。 (1)入力済の合計(緑) (2)未入力の合計(黄色) (3)総合計(オレンジ)  ※現在、Aの部分と(3)の総合計は表示できている状態です。 レポートにて作成ができない場合、どのようにすれば、上記(1)~(3)の合計を 出すことができますか? アクセス初心者ですが、よろしくお願いします。

  • グループ毎にある列の最大値のレコードを取得する方法

    Accessで下記のようなテーブルでkeyフィールド毎のdayフィールドの最大値のレコードを取得したいと思ったのですが、keyフィールドとdayフィールドのみを表示する分には下記の記述で大丈夫かと思ったのですが、これにidフィールドとfieldフィールドもあわせて表示したい場合、どのように記述すれば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 なお、出来れば同じkey,同じdayが複数あった場合、一番大きいid(主キー)のレコードを取得したいと思っています。 【テーブル(T_TBL)】 id|key|day|field ------------------ 1|1|     |100 2|2|2011/03/04|400 3|2|2011/03/03|500 4|3|2011/03/10|300 5|3|2011/03/10|200 【下記ソース実行時のメッセージボックスの表示結果】 1 : 2 : 2011/03/04 3 : 2011/03/10 【希望する表示結果】 1 : 1 : : 100 2 : 2 : 2011/03/04 : 400 5 : 3 : 2011/03/10 : 200 【ソース】 Option Compare Database Option Explicit Private Sub Form_Load() Dim db As DAO.Database Dim rs As DAO.Recordset Dim SQL As String Dim strMsg As String Set db = CurrentDb() SQL = "" SQL = SQL & "SELECT key, Max(day) AS max_day" SQL = SQL & " FROM T_TBL" SQL = SQL & " GROUP BY key" Set rs = db.OpenRecordset(SQL) Do Until rs.EOF strMsg = strMsg & vbNewLine & rs!Key & " : " & rs!max_day rs.MoveNext Loop MsgBox vbNewLine & strMsg rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub 以上、よろしくお願いします。

  • Accessのレポートに取り消し線を表示したい

    いつもお世話になっています。 名簿を作成しているのですが、結婚して姓が変わった場合、 上書きせずに新しい姓を別のテキストボックスに入力します。 これをレポートとして出力する際、新しい姓が入力された場合は、 過去の指名のテキストボックスに二重線を引きたいのですが うまくいきません。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新姓 <> "" Then Me.取り消し線1.Visible = True Me.取り消し線2.Visible = True Else Me.取り消し線1.Visible = False Me.取り消し線2.Visible = False End If End Sub お力添えをお願いいたします。

  • access レポートで罫線を最後まで出力する方法

    accessのbvaの本を参照してレコードがない場合でも最後まで罫線を出力する方法を試しているのですが、インクリメントがうまくいっていないのかいつまでも改ページを続けてしまいます。 どなたか解決する方法を教えてください。 Option Compare Database Option Explicit '次の3つの変数はdeclarationセクションで宣言します '現在印刷中のレコード番号を表す変数 Private pintRecord As Integer 'レコードソースの全レコード数を表す変数 Private pintRecordMAX As Integer '1ページ当たりに印刷するレコード数の定数 Private Const cintRecperPage As Integer = 15 Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer) '現在印刷中のレコード番号を初期化します pintRecord = 0 'レコードソースの全レコード数を取得します pintRecordMAX = DCount("*", "T_出荷明細", "出荷No=reports![R_出荷証明書3 test]![出荷No]") '"*"にすることでクエリ内のレコード数をカウント。Null値フィールドを含むレコードも対象。 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '各テキストボックスの可視/非可視のフラグ Dim blnVisible As Boolean '現在印刷中のレコード番号をインクリメントします pintRecord = pintRecord + 1 If (pintRecord Mod cintRecperPage) > 0 Then '1ページ内の途中のレコードを印刷している場合 '改ページしないようにします Me!bpage.Visible = False '印刷するレコードの位置によって、各テキストボックスの可視/非可視の 'フラグと、次レコードへ進めるかどうかの設定を行います If pintRecord < pintRecordMAX Then blnVisible = True Me.NextRecord = True ElseIf pintRecord = pintRecordMAX Then blnVisible = True Me.NextRecord = False Else blnVisible = False Me.NextRecord = False End If Else '1ページ内の最後のレコードになったとき If pintRecord <= pintRecordMAX Then 'まだ印刷するレコードが残っているときはその行を印刷後、改ページします blnVisible = True Me!bpage.Visible = True Else '印刷するレコードがもうないときはその内容は印刷しません blnVisible = False End If End If 'フィールドと連結したテキストボックスの可視/非可視を設定します Me![品番].Visible = blnVisible Me![品名].Visible = blnVisible 'Me![寸法使用].Visible= blnvisible Me![数量].Visible = blnVisible Me![備考].Visible = blnVisible End Sub

  • access2007 サブフォームのエクスポート

    担当営業・売上月度別のデータを抽出用フォームを作成しました。 メインフォームでは担当を選択するためのコンボボックスと 売上月度を選択するためのコンボボックスを配置しています。 サブフォームはメインフォームで選択された条件の明細が 表示される設定となっています。 このサブフォームに表示された内容をエクセルにエクスポート させたいのですが、メインフォームにボタンを配置しても メインフォームの担当と売上月度の日付のみが エクスポートされるだけでサブフォームの内容がなに一つ エクスポートされません。 担当・。売上月度で抽出されたサブフォームの内容を エクスポートするにはどうすれば良いでしょうか? ご指導の程、宜しくお願い致します。

  • Accessで変則の複数列レポート作成

    MS Accessにて以下のようなレポートを作成したいのですが、 どのように作成すればよいでしょうか。 サブレポートを使うなどして色々試してみたのですがうまくいきませんでした。 ■1ページ目 ┌──────┐┌──┐┌──┐ │タイトル    ││明細││明細│ │         ││ 1 ││ 2 │  └──────┘└──┘└──┘ ■2ページ以降 ┌──┐┌──┐┌──┐┌──┐ │明細││明細││明細││明細│ │ 3 ││ 4 ││ 5 ││ 6 │  └──┘└──┘└──┘└──┘ A4横の用紙で2in1で表示すると考えた場合、最初のページがタイトルページで、 2ページ目以降はページあたり2列の明細を表示したい。 ※ Access2003です。

  • access 複数のフィールドから検索し、択一表示

    お世話になります。 初心者です。 工場別の納期表を作りたいと思ってます。 作業1工場、作業1納期、作業2工場、作業2納期 というフィールドに、 A工場、B工場、C工場が 作業1工場と作業2工場のフィールドの区別なく入り、納期も付随してそれぞれ入ります。 (例えば、あるレコードではA工場が作業1工場、別のレコードでは作業2工場に入ったりします。 ちなみに、1レコードにA工場が作業1と作業2で両方入ることはありません。) 検索フォームで指定した工場のみのデータを作業1工場、作業2工場の両方のフィールドから抽出し、 できれば、レポートの同じ場所に表示し、納期日でグループ分けなどしたいと考えています。 クエリでやろうとしましたが、うまくいきません。 説明不足がありましたら、加筆します。 どうぞよろしくお願い致します。

  • Access コンボボックスの絞り込み後の表示

    Access2002を使用しております。 コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか? 例として、次の3つのテーブルを基にデータベースを作成しております: メインテーブル フィールド名: ID 社名 担当者 社名テーブル ID   社名   住所 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    A社 2    B社  担当者テーブル ID   社名ID   担当者名  電話番号 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    1      木村 2    2      佐藤 3    1      田中 4    2      斎藤 メインテーブルを基にしてフォームを作成し、 「メイン」というフォーム名にして 「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。 「社名」フィールドの値集合ソースを「社名テーブル」から引き出し SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2  で設定し、社名をコンボボックスで選択できるようにしました。 そして 「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名)); で設定しました。 「社名」フィールドの「更新後処理」で Private Sub 社名_AfterUpdate()     Me!担当者.Requery End Sub を設定しました。 「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると 「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。 次のレコードに移り、「社名」コンボボックスで「B社」を選択すると 「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。 さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると 「担当者」欄が空欄で表示されます。 メインテーブルには全てデータは入力されています。 データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、 このようにデータ入力済みの場合は 最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも) 入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが 何か良い方法はないでしょうか? 出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・

  • access 複数のフィールドから検索し、択一表示

    お世話になります。 初心者です。 工場別の納期表を作りたいと思ってます。 作業1工場、作業1納期、作業2工場、作業2納期 というフィールドに、 A工場、B工場、C工場が 作業1工場と作業2工場のフィールドの区別なく入り、納期も付随してそれぞれ入ります。 (例えば、あるレコードではA工場が作業1工場、別のレコードでは作業2工場に入ったりします。 ちなみに、1レコードにA工場が作業1と作業2で両方入ることはありません。) 検索フォームで指定した工場のみのデータを作業1工場、作業2工場の両方のフィールドから抽出し、 できれば、レポートの同じ場所に表示し、納期日でグループ分けなどしたいと考えています。 クエリでやろうとしましたが、うまくいきません。 説明不足がありましたら、加筆します。 どうぞよろしくお願い致します。

  • Excel2002のセキュリティの設定変更について

    Excel2002で[ツール]→[オプション]→[セキュリティ]の設定がありますが、[セキュリティ]タブを開いても「セキュリティの設定」の項目が表示されません。 何故でしょうか? また、表示させる方法をご教授いただけないでしょうか? 他所から送信されてきたファイルにマクロが設定されており、ファイルが動かせません。

  • excel/vba/public変数

    excel VBAで下記のようなコードを書きました。 他のプロシージャでも共通の変数を使用したいと思っています。 その為、public変数を宣言して使用したいと設定しましたが。 うまくいきません。 testmainを実行し、iに何も入っていないことを確認しました。 その後『1』を代入し、testmainは終了します。 testsubをその後実行し、iに先ほど代入された値を確認しようとしても何も代入されていない状態です。 全プロシージャでその変数を使用したいと思っているのですが、 何か方法、もしくはこのような使用方法ではないのでしょうか? public変数を使用してもプロシージャが終了すれば変数はクリアされるのでしょうか? 構造化の方法の問題上参照渡しや、戻り値など、指定する方が複雑になっていきます。 ご指導よろしくおねがいします。 Public i As Variant Sub testmain() MsgBox test i = 1 End Sub Sub testsub() MsgBox i End Sub

  • Access2003 レポートの表示方法に関して

    当方Access2003利用者です。 テーブル上では、「処理1」「処理2」という異なったフィールドを作成しておりますが、レポート上では【処理】欄だけとし、 「処理2」が空白であれば「処理1」の内容を表示、 「処理2」が空白でなければ「処理2」の内容を表示といった形にしたいと考えています。 現在、 If Me.処理2.value = "" Then   Me.処理2.Visible = False Else Me.処理1.Visible = False という形で記述していますが、うまくいきません。 どのように記述すればよいのでしょうか? 宜しくお願いします。

  • エクセルのこれ何?

    2007です 画像うまくついてるでしょうか? 赤で囲った部分を下に引っ張ると 何やら画面が分裂します この機能何ですか? 暇なときにでもお願いします。

  • Access2003 タブコントロールについて

    フォームの詳細にタブコントロールを配置して、 その中にサブフォームを入れています。 そのサブフォームにあるテキストボックスの文字を レポートのテキストボックスに表示させたいです。 ただのフォームなら =Forms!フォーム名!テキストボックス名 でレポートに表示できますがタブコントロールがある場合は レポートのテキストボックスのコントロールソースに どういうふうに記述すればよいのでしょうか? よろしくおねがいします。

  • アクセスでのテキストボックスの複数条件での抽出

    Private Sub 検索_Click() Dim strFilter1 As String Dim strFilter2 As String Dim strFilter3 As String strFilter1 = "学校名 = '" & 学校名1 & "'" strFilter2 = "学校区分 = '" & 学校区分1 & "'" strFilter3 = "キャンパス = '" & キャンパス1 & "'" Me.Filter = strFilter1 & " or " & strFilter2 & " or " & strFilter3 Me.FilterOn = True End Sub (1)学校名・(2)学校区分・(3)キャンパスと3つのテキストボックスがあり 3つの抽出条件を満たすレコードをフォームに表示させたいのですが 学校名を仮に早稲田大学といれ絞れるのですが次に学校区分を大学 と入れるとほか大学も抽出されてしまいます。 学校名を抽出させたら、その範囲で学校区分の大学を抽出させたいのですが どのようにすればいいのでしょうか? (1)のみの抽出の場合や(1)と(2)のみの 場合があるのでandの完全一致ではありません。

  • CSV入力 手動ではできるのにVBAでは?

    CSVをインポートするときに、手動ではできるのですが、 VBAで実現できないのでおたずねします。 [グループ名][人数] うさぎ 50 ぱんだ 30 こあら 45 のように元データにはIDらしきものが有りません。 これを前提に。。。。 <手動の場合> 1.[外部データ]-[テキストファイル]でcsvファイルを選択 2.現在のデータベースの新しいテーブルに・・を選択して、OK 3.テキストインポートウィザートが表示され、1行目が文字化けしているので、   [設定]でコードページを「日本語JIS」にして[OK]して[次へ] 4.先頭行をフィールド名・・にチェックを入れ、[次へ] 5.フィールドオプションのデータ型をエラーが出ないように変更し、[次へ] 6.「主キーを自動的に設定する」を選択する。 ※ここで左端のフィールドにCSVにはない「ID」が表示される。<===これが目的 7.[設定]でインポート定義「インポート定義1」を保存して[次へ] 8.インポート先のテーブル名「T-001」を入力して[完了] できたテーブルを開くと、IDフィールドに主キーが設定されています。 ここまでをVBAでやりたいのですが、 DoCmd.TransferText acImportDelim, "インポート定義1", "T-001", "C:\File_1.CSV", True とするとIDフィールドができていません。 どうすれば手動でやったときと同じ結果が得られるのでしょうか? よろしくご指導お願いします。