サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
hatenachips.blog.fc2.com
cmb得意先の変更時のイベントプロシージャ Private Sub cmb得意先_Change() Dim stSQL As String stSQL = "SELECT 得意先名 FROM 得意先 WHERE フリガナ Like '*" & Me.cmb得意先.Text & "*' ORDER BY フリガナ;" Me.cmb得意先.RowSource = stSQL Me.cmb得意先.Dropdown End Sub 上記はフリガナで制限してますが、得意先名で制限してもいいかもしれません。希望に合わせてWHERE句の条件を変更してください。 さて、上記のコンボボックスでカナを一文字でも入力するとリストがドロップダウンして部分一致で制限されたリストが表示されます。そのリストから2行目以降のデータを選択しようと、↓キーを押すと、テキストボックスに1行目のデータが表示されると同時に、リスト
Access2016の住所入力支援機能が自動アップデートで使えなくなっています。それ以前に、Office郵便番号辞書がもう何年もされていないです。 もう、MSはあてにならない、自前で住所入力支援機能するしかなさそうです。そこで、まずは、WEBで公開されている郵便番号データを調べてみました。
SELECT Avg(V) AS Median FROM (SELECT Max(F1) AS V FROM (SELECT TOP 50 PERCENT T_Data.F1 FROM T_Data ORDER BY F1) UNION ALL SELECT Min(F1) FROM (SELECT TOP 50 PERCENT T_Data.F1 FROM T_Data ORDER BY F1 DESC)); 結果は1件のみです。 SELECT TOP 1 F1 FROM (SELECT F1, Count(F1) AS Cnt FROM T_Data GROUP BY F1) ORDER BY Cnt DESC; 最頻値が複数ある場合は、すべて返します。 中央値クエリの解説 サブクエリを含むSQLでは解読できないという方の為に分解して解説します。 トップ値を50%に設定して、F1の昇順
今まで使っていたページネーションの仕様に少し不満があったので自作のものに置き換えました。割りと満足できるものになったのでスクリプトを公開します。 難易度:
PhraseExpressにはユーザーがコピーしたテキストを履歴として残しておいて、後から再利用できる機能があります。 これを有効利用すると入力効率が非常に上がります。
以前、Vista のときに下記の記事を投稿しました。 Vistaで IEの複数バージョンの動作確認をするには - hatena chips この記事では、IETester というフリーソフトを紹介しました。 しかし、当方のWin7ではインストールに失敗して使えなかったので、「IEはもういいや」と確認を諦めていた。 が、ちょっと調べてみたら、IE11 の開発者ツールで簡単に確認できるらしい。
WEB検索のように複数キーワードを空白で区切って入力して、And条件で曖昧検索したい。 これもよくみかける質問ですね。 方法もWEB検索すればいろいろ見つかると思いますが、AC2000以降なら、Replace関数とBuildCriteria関数を使うとシンプルなコードで実現できます。 難易度:
Category1 cccccc 投稿:1 人気:4 dddddd 投稿:2 人気:1 aaaaaa 投稿:3 人気:2 bbbbbb 投稿:4 人気:3 Category2 HHHHHH 投稿:5 人気:2 FFFFFFF 投稿:6 人気:4 EEEEEEE 投稿:7 人気:3 GGGGGG 投稿:8 人気:1 新着順 人気順 テキスト順 JavaScript、jQuery、両者を使って要素を並べ替える - すたら日記 上記を参考に各リストの要素がid属性の降順で並べ替えられるのを期待して、下記のようなコードを書いて実験してみました。 $('#btn1').click(function() { $('ul').html( $('ul > li').sort(function(a, b) { return parseInt($(b).attr('id'), 10) - parseInt($
ZIP圧縮はいままで、Shell関数で Lhaplus をコマンドラインで呼び出していました。が、連続でZIPファイルを作成する必要が出てきて、Shell関数だと非同期だし、ダイアログが鬱陶しいし、で不満でした。DLLを利用した圧縮と解凍の関数を作成しようと思い立ちました。 DLLを利用したZIPファイルの作成は ZIP32J.DLL + ZIP32.DLL が一般的なようですが、これだと圧縮だけしかできないです。解凍は UNZIP32.DLL が別に必要になります。 で、他にないか探してみました。 難易度:
これをレコードソースにしてレポートを作成します。ページヘッダー/フッター、レポートヘッダー/フッターを表示させて、詳細セクションには、フィールドをテキストボックスとして配置します。各セクションのイベントに下記のようにデバッグコードを埋め込みます。 レポートモジュール Option Compare Database Option Explicit Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Page:", "ID:", "セクション", "イベント:", "Format(Print)Count:" Debug.Print Me.Page, Me.ID, "Rヘッダー", "Format", FormatCount End Sub Private Sub レポートヘッダー
パラメータで[開始期間]と[終了期間]というように入力させて、その期間内に含まれる日付/時刻型のデータを抽出したい。 あるいは、抽出対象の方も[開始日時]、[終了日時]というように幅があり、期間が一部でも重なれば抽出したい。 というようなことはよくあると思います。 今回は、期間に関する抽出条件のあれこれを、考察してみましょう。 難易度:
MS Access Tips/Sample and VBA and Blog customize etc... 図のようにタスクバーにスリープボタンを配置するTipsの紹介です。 以前は 電源管理ガジェット を使っていたのですが、新PCでインストールしようとしたら、「Windows Web サイトでは、ガジェット ギャラリーのホストを終了しました」とのこと。MSとしてはガジェットはもうサポートしないということらしい。 作者のページからはダウンロードできるのだが、4つのボタン(電源オフ、再起動、スリープ/休止、ロック)の内、自分が使うのはほとんどスリープだし、いざ使おうとすると最大化したウィンドウの後ろに隠れていたりとか(常に全面表示すればいいのだかそれはそれで目障りだし)、微妙に使いにくいので、他に方法はないかなと考えてみました。 usiwin: 電源管理ガジェットのバージョン 2.3 を
ログインフォーム F_LogIn ID入力テキストボックス txtID パスワード入力テキストボックス txtPass ログインコマンドボタン cmdLogIn 下記の設定にしておくのをお勧めします。 ログインフォームを「起動時のオプション」でに最初に開くフォームに指定。「作業ウィンドウ固定」を「はい」にしておく。txtPass の「定型入力モード」を「パスワード」に設定。 ログイン完了後、呼び出されるフォーム F_入力 モジュール ログインボタンのクリック時 Private Sub cmdRogIn_Click() Dim Res If IsNull(Me.txtID) Then MsgBox "IDを入力してください" Me.txtID.SetFocus Exit Sub End If If IsNull(Me.txtPass) Then MsgBox "パスワードを入力してください"
ユニオンクエリを利用する方法 普通に思いつくのは、クロス集計クエリと商品でグループ化した集計クエリを作成して、この2つのクエリをユニオンクエリで連結する方法です。ただ、これだとクエリが3つになるし、サブクエリでひとつに纏めることもできません。(クロス集計クエリはユニオンにできない。) 元テーブルをユニオンクエリで連結しておいて、それをクロス集計にすれば2つのクエリで済みますし、サブクエリで一つに纏めることも可能です。 クエリ1 SELECT テーブル1.担当者, テーブル1.商品, 数量 FROM テーブル1 UNION ALL SELECT "合計", 商品, 数量 FROM テーブル1; クエリ1のクロス集計 TRANSFORM Sum(クエリ1.数量) AS 数量の合計 SELECT クエリ1.担当者, Sum(クエリ1.数量) AS 数量合計 FROM クエリ1 GROUP BY
親フォームから子フォームを開き、親フォームは非表示にします。子フォームを閉じると親フォームに戻るようにしたいです。子フォームは複数のフォームから呼び出されるので、呼び出し元のフォームを取得してそのフォームへ戻る(非表示から表示に切り替える)にはどうしたらいいでしょうか。 たぶん、どこかに転がっていると思いますが、掲示板回答用にコーディングしたので2種類の方法を紹介しておきます。 難易度:
上記のようなテーブルに10,000件のレコード(1Group当たり100件、全100Group)をVBAで作成しました。ID は連番、Fld1 は Rnd関数で乱数を生成しました。ちなみにコードは下記のものです。 Public Sub MakeData2() Dim rs As DAO.Recordset Dim i As Long, j As Long, c As Long CurrentDb.Execute "DELETE FROM Table2;" Randomize Set rs = CurrentDb.OpenRecordset("Table2") For i = 1 To 100 For j = 1 To 100 c = c + 1 rs.AddNew rs!ID = c rs!GroupID = i rs!Fld1 = Int(100000 * Rnd + 1) rs.Upd
Aテーブルがあります。商品コードとロットフィールドがあり、それをBテーブルにデータを反映させたいのですが、Bテーブルに商品コードとロットが存在すれば上書き(書き換え)なければ、追加する仕組みを作りたいのですが、どうすればよろしいでしょうか? 上記のような要望は、結構あると思います。 普通に考えれば、上書きと追加の2つの処理が必要なので、更新クエリと追加クエリの2つのクエリが必要になると思われます。 しかし、一つのクエリで実現できる方法もあります。 難易度:
MS Access Tips/Sample and VBA and Blog customize etc... 実は、hatenaは、ATOK2010 + 親指シフトという絶滅品種指定の日本語入力をしています。 親指シフトって何だという方は下記を参照(NICOLAともいう)。 親指シフト - Wikipedia NICOLA 日本語入力コンソーシアム 本来は、専用キーボード、専用ドライバーが必用なのですが、Windows環境で通常のJISキーボードを擬似親指シフトに変換するソフト(親指シフトエミュレータ)があります。 長年、「親指ひゅんQ」という親指シフトエミュレータを利用してきました。が、1年ほど前に公開停止になっていました。 NICOLA ソフトウェアライブラリ インストールしてあるバージョンは自宅の Win7 32bit ではなんとか使えていたのでそのまま使用してきましたが、アドバイ
コントロールソースをVBAで動的に書きかえる方法 フォーム名 F_予約、ヘッダーにテキストボックスを配置して名前を 開始日 とする。レコードソースは空白にしておきます。また、ヘッダーの日付表示ラベルの名前は、lbl0, lbl1, ・・・lbl6、詳細セクションの値表示用のテキストボックスの名前は、 txt0, txt1, ・・・txt6 とします。 下記のクエリ「Q_予約」を作成 PARAMETERS Forms!F_予約!開始日 DateTime; TRANSFORM First(T_予約.名前) AS 名前の先頭 SELECT T_予約.予約時刻 FROM T_予約 WHERE T_予約.予約日 Between Forms!F_予約!開始日 And Forms!F_予約!開始日+6 GROUP BY T_予約.予約時刻 ORDER BY T_予約.予約時刻, Format([予約日]
フォームモジュールのコード Option Compare Database Option Explicit Dim ctl As Control Private Sub Form_Load() Set ctl = Screen.ActiveControl If IsDate(ctl.Value) Then Me.Calendar0.Value = CDate(ctl.Value) Else Me.Calendar0.Value = Date End If End Sub Private Sub Calendar0_Click() Me.Visible = False ctl = Me.Calendar0.Value DoCmd.Close acForm, "F_Calendar" End Sub フォームの名前は F_Calendar として保存します。 標準モジュールに下記の関数を作成し
また、グループ化しているフィールド名は、分類 と仮定します。 レポートのモジュールに下記のように記述します。 Option Compare Database Option Explicit Dim d As Object ' Dictionary オブジェクト用変数 '開くとき Private Sub Report_Open(Cancel As Integer) Set d = CreateObject("Scripting.Dictionary") End Sub '分類フッターのフォーマット時 Private Sub グループフッター1_Format(Cancel As Integer, FormatCount As Integer) If Me.Pages = 0 Then d(Me.分類.Value) = Me.Page End If End Sub '分類ヘッダーのフォーマット時
AutoFontSize関数を利用して、レポート内テキストボックスのデータを縮小することはできたのですが、縮小すると、文字の配置が上側になってしまうのを、どうにか真ん中に表示させたいのです。エクセルには、セルの書式設定で、「縦位置」「中央揃え」というのがありますが、アクセスでどうにかならないものでしょうか? テキストボックス内の文字を自動で縮小して全体を表示でAutoFontSize関数を紹介しました。それに関して、上記のような要望がありました。そこで、引数で、文字の垂直配置(上, 中央, 下)を指定できるように改良しました。 難易度:
かっこいい光るエフェクトのボタンを見つけたので当ブログに設置してみました。 Buttons like Windows 7 with JS & CSS Mootools版とjQuery版があります。当ブログではもちろんjQueryの方です。 難易度:
他のサイトで見かけて、面白いなと思ったので、導入してみました。 ページを下へスクロールすると、右下にボタンがスーッと出現して、そのボタンをクリックするとページトップへスルーッと移動します。 スムーズなスクロールは既に、スルスルっと気持ちよくページスクロール でjQueryのスクリプトを紹介済みですが、今回のもjQueryのスクリプトです。 ページトップ移動だけですが必要に応じて出現したり隠れたりするのがポイントが高いです。導入も非常に簡単でした。 難易度:
片面に表と裏の両方印刷して、半分に折って、表面と裏面にしたいので、裏面用のテキストボックスを180度回転させたいのですが、可能でしょうか? 例えば、会議などで机の前に置く名札で、下記のように印刷して、真ん中で半分に折って使いたいというような場合ですね。 そんなときに、使える技です。 難易度:
カレンダー形式でスケジュールを表示できる設計例です。最終的には、スケジュールデータの詳細表示、入力もできるように設計します。祝祭日表示にも対応する予定です。 今回は、チュートリアル形式で、一から制作手順を紹介します。効率的な開発法の御参考になるかも。 難易度:
MS Access Tips/Sample and VBA and Blog customize etc... ACR WEB ページランキング の設置は、登録画面で登録すると返信メールが届くので、そこにある管理画面のURLで管理画面へ行きます。そこの「タグ取得」ページでカウント取得用タグ、ランキング表示用タグ をコピーしてブログのテンプレートに貼り付ければOKです。 あとは、「環境設定」で、色やサイズ、集計期間等を設定します。また、「タイトル自動設定」で、自分のブログのRSSファイルのURLをコピーして貼り付けます。これで新規記事、これから追加する記事のタイトルはRSSファイルから自動で取得してくれます。ただ、過去記事は取得されないので、自分で設定する必要があります。 過去の記事が多い人は、過去記事のタイトル置き換えを手動でしなければならず結構面倒ですね。このブログも設置時点で30ぐらい
カスタマイズについてのブログを見ていたら、下記の記事が目に入ってきました。 FC2ブログ用パンくずリスト Ver.2 (親子カテゴリ対応版) 子カテゴリのページには 親カテゴリ > 子カテゴリ という表示をしたかったのですが、残念ながら変数の仕組み的に実現できませんでした。変数が追加されたり、仕様が変わったりしたら実装できるかもしれません。 自分のところでは、パンくずリストとはちょっと違うのですが、ページナビゲーションをヘッダーに置いているのですが、同じ問題に遭遇して、JavaScript を使って無理矢理解決したので、それを利用して、子カテゴリのページで 親カテゴリ > 子カテゴリ という表示 に対応したパンくずリストを作ってみました。 難易度:
次のページ
このページを最初にブックマークしてみませんか?
『hatena chips』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く