テーマ:SQL

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

SQL-Server OLAP(分析)関数

メモ SQLアタマアカデミー http://gihyo.jp/dev/serial/01/sql_academy2/001101 以前、分析関数としてRANK等があるとメモしていたが、 それらはOLAP関数ともいう。 OLAP(OnLine Analytical Processing):データベースを使ってリアルタ…
トラックバック: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 複数テーブルを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

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

AccessVBA CStr関数とStr関数の違い

数字を文字列に変換し、他の文字列と結合して格納する際にStr関数を使ったところ、間に余分な半角スペースが入ってしまっていた。 調べたところ、Str関数では符号分をあらかじめ半角スペースとして空けた状態で文字列に変換しているらしい。 単純に文字列に変える場合は、「CStr関数」を使えば良いようだ。 http://www.ka…
トラックバック:0
コメント:0

続きを読むread more

Access (Jet用)と SQLServer 用SQLの違い

今回は外部結合を使うUpdate文のところで難儀した。 こちらを参考に解決 http://www.syswat.com/sqltips.html#tpc4020 SQLserverでは Update テーブルA Set  カラム名=Value From テーブルA  Inner Join テーブルB  ON  …
トラックバック:0
コメント:0

続きを読むread more

Access 別テーブルから値を更新

Accessメモ TABLE1からTABLE2にIDで結びつけてフィールドを一括更新したい場合。 EXCELでいうとVLOOKUP関数で得られる結果のようなもの。 例 顧客マスタ ID 会社名 郵便番号 都道府県 郵便番号マスタ 郵便番号 都道府県 相関問い合わせを使用する場合 UPDATE 顧客マスタ…
トラックバック:0
コメント:0

続きを読むread more

Access 削除後に新規レコードに移動

メモ ■yogi http://yogi.blog.so-net.ne.jp/2010-03-26 削除レコード番号 = CurrentRecord レコード総数 = Recordset.RecordCount If 削除レコード番号 <> レコード総数 Then  DoCmd.GoToRecord …
トラックバック:0
コメント:0

続きを読むread more

Accsessチェックボックス

備忘メモ チェックボックスに格納されているデータを数値として見るときの取扱いが、AccessとSQLServerで異なる。 Accessの場合 True:-1 False:0 NULL SQLサーバーの場合 True:1 False:0 NULL Access⇔SQLサーバー での登録、読み込みの時に、値…
トラックバック:0
コメント:0

続きを読むread more