テーマ:Access

Accessログイン認証にAD認証を使う

やりたいのはこういう事↓ Acessを開く前にユーザー名、パスワードを入力するフォームを表示させ、 ActiveDirectoryに接続し、ユーザー認証を行いたい http://www.accessclub.jp/bbs6/0016/das4904.html 言葉としては、ADのLDAP(Lightweight Direct…
トラックバック:0
コメント:0

続きを読むread more

SQLでCase式使用時の注意

前に投稿した記事 http://uwasora.at.webry.info/201107/article_13.html で書いていた、Case式 「varcharの値’#’をデータ型intに変換できませんでした」 のようなエラーが出る場合の対策(わかる範囲で)。 使用頻度が高そうなケースとして、数値→特定の文字列…
トラックバック:0
コメント:0

続きを読むread more

ADO接続でRecordCount実行時エラー

ADO接続で cnt = Recordset.Recordcount のようにしても、エラーが出て取得できない状況。 1行ずつ検証していくと、 MoveLastしたときに、 「行セットは逆方向フェッチをサポートしていません。」 とエラー これについて調べると、どうやらカーソルの指定に問題があるらしい。 詳細は…
トラックバック:0
コメント:0

続きを読むread more

テーブル作成クエリでYESNO型(チェックボックス)の指定

フロント側Access、DB側SQLサーバーで SQLサーバからデータ取得(一覧) →一覧から選択(チェックボックス) →選択したものに対して削除実行等 という事を出来るだけ簡単に行いたい場合の一案検討。 ※テーブルを事前作成するのも省きたい。 パススルークエリを利用する方法で AccessVBAでパススルークエリ作成…
トラックバック:0
コメント:0

続きを読むread more

AccessVBA 共通の検索フォームを利用する場合

メモ 例えば ・「在庫登録フォーム」 ・「在庫検索フォーム」 という似たような情報を使う画面から、 ・「倉庫選択フォーム」 を呼び出して倉庫名を選択・取得し、呼び出し元のフォームのテキストボック等に値を記入するような処理。 普通は DoCmd.OpenForm の OpenArg引数 を使えば良さそうだが、もっと初歩的…
トラックバック:0
コメント:0

続きを読むread more

Access VBA フォームの名前を取得

メモ フォームオブジェクトを使う 使用例 1.フォームAでボタンを押す 2.フォームBが開く 3.フォームAの情報(CustomerID,CustomerName)がフォームBに転記される というような処理をしたい場合 フォームBのForm_Load()で Dim f As Form 'フォー…
トラックバック:0
コメント:0

続きを読むread more

AccessVBAでカレントフォームを閉じる

メモ 「閉じる」ボタンでカレントフォームを閉じるような場合、 普通は毎回フォーム名を入れなければいけないが、 マクロを使わず、VBAでも同一内容で追加できる、 カレントフォーム名は Me.Name で取得できる。 予めフォームを閉じるモジュールを作っておき Call モジュール名.プロシージャ名(Me.Name) …
トラックバック:0
コメント:0

続きを読むread more

Access パススルークエリをソースにサブフォームを

作業メモ パススルークエリをレコードソースにしたフォームを作成し、それをサブフォームとしてメインフォームから呼び出すと、 「列見出しが変更される可能性のあるクロス集計クエリーとフォームを連結させてサブフォームとして使うことはできません。」 のようなエラーメッセージが出てしまう。 その解決法 パススルークエリーをレコー…
トラックバック:0
コメント:0

続きを読むread more

SQL-Server データの競合でリンクテーブル更新が失敗対応

メモ リンクテーブルを作成し、Accessでデータ更新を行おうとした場合、「このレコードは他のユーザーによって変更されています。[レコードの保存] を選択すると、他のユーザーによる変更を無視し、自分が行った変更を反映します。 」のようなメッセージが出て、更新が行えない場合がある。 ■Access 2000 で、リンクされている …
トラックバック:0
コメント:0

続きを読むread more

Access サブフォームのレコードセットを削除

メモ 次回サブフォームのレコードセットを空欄にしないとエラーが出てしまうような場合。 Let Forms![メインフォーム名]![サブフォーム名].Form.RecordSource = "" これをメインフォームのCloseイベントなどに記述
トラックバック:0
コメント:0

続きを読むread more

SQL-Server トリガを使った履歴記録

メモ 例えば、顧客情報テーブルを更新した時に、 更新前の情報を残したい時 など。 VBA上でやっても同様のことができるが、SQLServer(以外もあるが)ではトリガを使ってサーバー側で処理をサせることができる。 SqlServerManagementStudioで データベース └テーブル(監視対象)   └…
トラックバック:0
コメント:0

続きを読むread more

Access クエリでの改行指定

例えば ・都道府県 ・市区郡 ・町村域 ・建物等 を一つのテキストとして&でつないだが、 長いため2行になるような場合で、「建物等」から改行させるには クエリで VBCRLF は使えないため 代わりに  & Chr(13) & Chr(10) を使う [都道府県] & [市区郡] & [町村域] & Chr(1…
トラックバック:0
コメント:0

続きを読むread more

Access 複数テーブルをJoinしてDeleteするには

メモ 「削除対象のテーブル」以外のテーブルの値を元に削除したい場合。 例えば、特定の売上データを、商品テーブル上の特定コードを元に削除するなど。 AccessのSQLではSQLサーバー用とは書き方が少し異なる。 DELETE T1.* From 売上テーブル as T1 Inner Join 商品テ…
トラックバック:0
コメント:0

続きを読むread more

SQL-Serverで月初、月末日付の取得

Transact-SQLメモ 合っているようだけど長い・・・ 月末は、月初を計算して、1日減算する方法で DATENAME(YEAR,DATEADD(MONTH,-1,GETDATE())) + '-' + DATENAME(MONTH,DATEADD(MONTH,-1,GETDATE())) + '-' + '01' as …
トラックバック:0
コメント:0

続きを読むread more

AccessVBA 強制改行の禁止

通常、Accessフォーム上のテキストボックスはエンターキーで別のコントロールボックスに移動するが、CTRL+ENTERで強制改行可能。 それを禁止するVBAメモ Private Sub Content1_AfterUpdate() '改行コードがあった場合は削除して半角空白に置換 If InStr(1,…
トラックバック:0
コメント:0

続きを読むread more

AccessVBA レポートで小数点の切り上げ、切り捨て

元データはいじらず、レポート上で計算する場合、 レポート上の数値を引数として、直接値を書き換える方法で対応可能。 例えば、通常は四捨五入だが、特定の時だけサブレポート上の合計値txtSum1:1234.56 を 1234 にしてメインレポート上のtxtSum2に戻し、さらにその数字を計算で使う場合。 端数の処理についてはR…
トラックバック:0
コメント:0

続きを読むread more

AccessVBA メソッド名を取得するには

例えば、エラー発生時に共通で呼び出すエラー処理用のメソッドで、呼び出し元のメソッド名を出力したい場合。いちいち引数で指定すればよいのだが、毎回異なる引数名を自動で取得できないか。 Call エラー処理用メソッド名(呼出元クラス名) ざっと調べてみたが、AccessVBAでは簡単に取得するのはどうやら無理らしい。 VB.…
トラックバック:0
コメント:0

続きを読むread more

条件分岐:IIF関数、IF文とSwitch関数、Case文、Case式 比較

使い分けで混乱するのでメモ 思い違いがあるかも。 〇:Accessクエリ(SQL)で使えるもの □:SQL Server へのSQL発行で使えるもの ☆:条件に当てはまらない部分の式も評価の対象とする 注意点として、VBAで引数として使えない場合がある? 例えば、「金額」が1,000ならA,その他ならBを「評価」…
トラックバック:1
コメント:0

続きを読むread more

Access2010ファイルがAccess2007で開けない問題

確認したこと 元々2007のファイルをAccess2010で編集していると、何かのきっかけでAccess2007では開けなくなってしまう。 Access2010でファイルを新規作成し、Access2007で開けなくなったファイルからクエリ、テーブルコピー(Access2010で操作)→Access2007で開けないまま …
トラックバック:0
コメント:0

続きを読むread more

AccessVBA レポートセクションごとページ番号設定

メモ セクションごとに セクション単位のページ番号/セクション単位の総ページ数 を表示させたい場合。 参考にしたページ http://homepage3.nifty.com/pokoa/Access/AccessReportGroup.htm やることは ・ページヘッターorページフッターに、通常のページ番…
トラックバック:0
コメント:0

続きを読むread more

AccessVBA四捨五入(切り捨て、切り上げ)

レポート上では、書式設定で #,##0 として小数点以下を丸めた場合、期待通り四捨五入される。 ただし表示上だけなので、数量×単価で計算させた場合はずれが生じる レポートソースのクエリでROUND()関数を使った場合、 偶数方向に丸める特殊な(銀行方式?)での四捨五入になる。 例えば、 102.5→102 107…
トラックバック:0
コメント:0

続きを読むread more

AccessにExcelファイルをインポート

メモ AccessファイルでExcelを読み込む際に Dim strFileName As String strFileName = ファイル選択モジュール DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Tmp_Import", strFileNa…
トラックバック:0
コメント:0

続きを読むread more

Access VBA レポート印刷時の制御

メモ 制御したい項目によって、どのイベント発生時に記述するか異なる。 分かった範囲でメモ。どこかにまとまって居ないものか・・・。 レポートを開くとき ・ControlSource 詳細ヘッダー等印刷時 ・FontSize ・Visible ・値(VBAでの計算結果など)
トラックバック:0
コメント:0

続きを読むread more

Access VBA 条件付き書式の制御

メモ 利用不可よりも条件付き書式が優先されるので、 VBAで書式の制御が必要。 Item()で、条件付き書式の何番目に適用するか指定。 複数あれば複数指定。 例チェックのONOFFで、列の有効/無効 If Me.chk1 = True Then Me.ボックス名.Enabled = Fals…
トラックバック:0
コメント:0

続きを読むread more

AccessVBA 次の行に移動する

メモ 似たイメージ DoCmd.GoToRecord , , acNext Docmd.FindNext 連続で一つの項目を変更していくような場合、 Update→Requery→元のレコードに移動→次のレコードに移動 とするなら、DoCmd.GoToRecord , , acNext で 移動時の描画チラツキを抑…
トラックバック:0
コメント:0

続きを読むread more