2019年11月19日

【Access】以前お客さんに作ったシステムで「クエリは破損しています」というエラーが出てしまったらしい。


どうもお久しぶりです。

長らくブログを放置してしまいました。

ところで、本日、以前私がフリーで仕事をしているときにお客様に作成したシステムに関する問い合わせがあり、システムを動かすと「クエリは破損しています」というエラーが出てしまうというとのこと。

そのシステムはAccessで作られており、調べてみると最近マイクロソフトが提供した更新プログラムに不具合がありその影響で出ているエラーということが分かりました。

2019年7月15日

【スイーツ】セブンの『きみのプリン』がウメェェェ!!

今日、何気なしに近所のセブンイレブンに立ち寄ったところ、スイーツコーナーに新商品が並んでいるのを発見してしまいました。

どうやらプリンのようです。

名前は『きみのプリン』。

ほぉ~、黄身と君のダブルミーニングだな。(ニヤリ)

オジサンそういうの嫌いじゃないぞ!

というわけで早速買ってみました。


パッケージはこんな感じです。
ちょっと小ぶりですかね。
そして、値段は148円(税込み159円)。
まあまあの値段です。



ふたを開けるとこんな感じ。
見た感じ非常になめらかさそう。


では早速、いただきまーす!


うーん、予想通り口当たりが非常になめらかで、食べた瞬間に香りが口の中に広がりプリンが舌の上でとろけます。

これはウメェェェェェェェェ!!!

プログラミングしてて疲れて甘いものが欲しくなった時に食べるにはちょうどいいです。

ぜひ、お試しあれ。



2019年6月29日

コメントシステムをDISQUSからMeTypeに変えてみたよ。

このブログを始めた当初からコメントシステムはDISQUSを使っていたのですが、最近になって広告が盛大に表示されるようになってしまい非常に見苦しい状態になっていました。

この広告を非表示にするには有料版にアップグレードする必要があるのですが、それには最低月に9ドル払わないといけません。

しかし、たまにしかコメントが無いのに月に9ドルは払いたくありません。

そこで、DISQUSに代わるものをいろいろ探してみました。

2019年6月19日

【初心者向け】入力フォーム(その5:削除機能の実装)






前回、編集ボタンの作成まで出来ましたので、今回は削除機能の実装をしていきたいと思います。



まずは、「F_入力」フォームに[削除]ボタンを追加します。

名前:buttonDelete
標題:削除

次にこの[削除]ボタンのクリック時イベントプロシージャに次のように記述します。
Private Sub buttonDelete_Click()

    Dim ans As VbMsgBoxResult
    
    ans = MsgBox("このレコードを削除してもよろしいですか?", vbYesNo + vbExclamation, "削除")
    
    If ans = vbYes Then
    
        '削除実行
        DoCmd.RunSQL "DELETE * FROM T_名物 WHERE ID = " & CStr(Me.ID.Value)
    
    End If

    'フォームを閉じる
    DoCmd.Close acForm, Me.Name

End Sub
ここでは何を行っているかというと、まずMsgBoxでメッセージを表示させレコードの削除の確認を行っています。そして[はい]のボタンが押された場合に「T_名物」テーブルから該当のレコードを削除しています。

2019年6月18日

【初心者向け】入力フォーム(その4:編集ボタンの作成)






前回で入力フォームからの新規追加の機能は完成しました。

今回は、同じ入力フォームを使って編集も出来るようにしていきたいと思います。


まずは、「F_名物」フォームに「編集」ボタンを追加します。

名前:buttonEdit
標題:編集



次に[編集]ボタンの「イベント」タブの「クリック時」のところの右端にある[...]をクリックします。

そして、[追加]ボタンの時と同じように「コードビルダー」を選択して[OK]をクリックします。

するとbuttonEdit_Click()というイベントプロシージャが作られますので、ここに下記のように記述します。
Private Sub buttonEdit_Click()

    DoCmd.OpenForm "F_入力", , , , , acDialog, CStr(Me.ID)

    Me.Requery

End Sub
追加のときと違うのは、最後のパラメータがCStr(Me.ID)となっていることです。これは、選択したIDを文字列として渡しています。これにより「F_入力」フォームでどのIDのレコード表示すればいいかが分かるようになります。

2019年6月17日

【初心者向け】入力フォーム(その3:イベントプロシージャの作成)






前回、入力フォームの作成まで出来ましたので、次にイベントプロシージャの作成を行っていきます。

イベントプロシージャとは、イベントが発生した時の処理のことを言います。

プログラミングの世界では「ボタンが押された」とか「テキストボックスの文字が書き換えられた」といった、何か事が起きたときのことをイベントと呼んでいます。

では、まず最初に「F_名物」フォームの「追加」ボタンのイベントプロシージャから作成していきます。


「F_名物」フォームをデザインビューで開いたら、「追加」ボタンを選択します。

2019年6月16日

【初心者向け】入力フォーム(その2:入力フォームの作成)






前回からの続きです。

追加入力フォームを作成していきます。


まず、このようにフォームを一つ追加します。

追加したら保存ボタンを押します。


するとこのようなダイアログが表示されてきますので、フォームの名前を設定します。
今回は「F_入力」としましたが何でも構いません。

2019年6月15日

【初心者向け】入力フォーム(その1:追加)



超初心者向けで作成したテーブルやフォームといった基本的な部分を応用して、データベースらしい機能の追加を紹介していきたいと思います。また、SQLについても触れていきたいと思っています。SQLはデータベースのデータを操作するための言語なんですが、SQLを使いこなせるようになれば複雑なデータの抽出も出来るようになります。また、SQLの基本を覚えておけば他のデータベースシステムでも活用することが出来ますのでぜひ覚えてほしいと思います。





今回は、脱初心者向けということで以前作成した「名物一覧」フォームに入力フォームを使ったデータの追加、修正、削除機能を実装していきたいと思います。

2019年5月6日

【Word】ハガキの差し込み印刷のやり方



Wordには差し込み印刷という機能があります。

差し込み印刷とは何かというと、ExcelやCSVファイル、Accessといったデータファイルから住所などのデータを読み込み、Wordにデータを差し込んで印刷する機能のことで、これにより大量の宛名印刷などが簡単に出来るようになります。

今回は、差し込み印刷の中でもよく使うと思われるハガキの差し込み印刷のやり方を説明したいと思います。


まず今回、このようなExcelで作られた住所録をもとに差し込み印刷を行っていきます。

注意してほしいのは1行目の項目をタイトルとして、実際の住所録のデータは2行目以降に書かれている点です。これはのちの設定に関係してきますので注意してください。

データの項目は、名前、名前フリガナ、郵便番号、住所、電話番号、携帯番号、メールといった項目です。もちろんこの通りになってなくても構いません。ハガキの宛先に必要な項目があれば大丈夫です。

ではさっそく作っていきたいと思います。

2019年5月3日

【Windows】Windows10バージョン1809の新元号対応パッチも公開されたらしい

昨日、どうやらWindows10バージョン1809の新元号対応パッチも公開されたようです。



ただし、この更新プログラムは自動では入らないようで、手動でパッチをダウンロードして適用する必要があるようです。

さっそくパッチを適用してみました。

手順としては下記リンクに行き、KB4501835のパッチをダウンロードして適用するだけです。
Microsoft Update カタログ KB4501835

ちなみにパッチ適用後はPCの再起動が必要ですので注意してください。

パッチ適用後、新元号に対応しているか確認してみました。

まず、和暦表示スクリプトを実行してみました。

2019年4月28日

DISQUSの広告が酷い

このブログ、DISQUSのコメントシステムを導入しているのですが、最近DISQUSの広告がデカいサイズのものしか表示されなくなってしまいました。

これを見てください。

コメント入力欄上部に巨大な広告が表示されています。

この上部の広告は以前からありましたが、自由に選択出来て非表示にすることも出来ていました。

↑2018年4月29日時点

2019年4月27日

【Windows】新元号対応のパッチがようやく公開されたらしい

Microsoftから新元号対応のパッチの提供がようやく開始されたようです。


やっとかよ!

てっきり4月1日に発表になったら次の日ぐらいにはパッチの提供があるのかと思ってたんだけど、、、遅せぇーよ!

てか、なんでこんなに時間がかかるんだよ!

前々から4月1日に発表になるって分かってたんだから準備してたんじゃないのかよ!

しかも、私が使っているWindows10のバージョン1809はまだだし。

2019年3月25日

【PowerShell】日付を和暦表示するスクリプト


新元号発表まであと1週間となりましたが、PowerShellで日付を和暦表示するスクリプトを作ってみました。

#
# Get-WarekiDate.ps1
#

#パラメータ
Param($date, $time)

try{
    if (($date -eq $null) -And ($time -eq $null)){
        #両方nullなら現在の日付を取得
        $d = Get-Date
    } elseif (($date -ne $null) -And ($time -eq $null)) {
        #指定した日付
        $d = [System.DateTime]::Parse($date)
    } elseif (($date -ne $null) -And ($time -ne $null)) {
        #指定した日付と時刻
        $d = [System.DateTime]::Parse($date + ' ' + $time)
    } else {
        #それ以外はエラー
        Write-Output 'パラメータが間違っています。[日付] [時刻]を指定してください。'
        exit
    }

    $c = New-Object System.Globalization.CultureInfo("ja-JP", $true)
    $c.DateTimeFormat.Calendar = New-Object System.Globalization.JapaneseCalendar

    #和暦で表示
    $d.ToString("ggy年M月d日 HH:mm:ss", $c)
}
catch [System.FormatException]{
    Write-Host "日付の指定が間違っています。"
    Write-Host $_
}
catch{
    Write-Host $_
}
少し解説すると、まず、下準備としてCultureInfoクラスで"ja-JP"のインスタンスを作成し、カレンダーを和暦(JapaneseCalendarクラス)に置き換えます。そして、DateTimeオブジェクトのToStringで、第2引数にCultureInfoクラスのインスタンスを指定すれば和暦として表示されます。

Windowsでは和暦情報を下記のレジストリを使って管理しているのですが、PowerShellで和暦表示させる場合もこの情報を取得してきています。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
PS C:\work\PowerShell> Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras


1868 01 01   : 明治_明_Meiji_M
1912 07 30   : 大正_大_Taisho_T
1926 12 25   : 昭和_昭_Showa_S
1989 01 08   : 平成_平_Heisei_H
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese
PSChildName  : Eras
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry
ここには元号が始まった日と表記方法が格納されています。
おそらく4月1日以降マイクロソフトから更新プログラムが公開され、平成の下に新元号のデータが追加されることになると思います。


では、実際に表示させてみます。

PS C:\work\PowerShell> .\Get-WarekiDate.ps1
平成31年3月25日 21:54:10
パラメータに何も指定しない場合は、現在の日時が和暦表示されます。

PS C:\work\PowerShell> .\Get-WarekiDate.ps1 1980/3/25
昭和55年3月25日 00:00:00
パラメータに日付を指定すると、指定した日付が和暦表示されます。

PS C:\work\PowerShell> .\Get-WarekiDate.ps1 1912/7/30 22:32
大正1年7月30日 22:32:00
パラメータに日付と時刻を指定すると、指定した日時が和暦表示されます。


4月1日、どんな元号となるのか楽しみです。


<参考>
西暦と和暦を変換するには?:.NET TIPS - @IT
アプリケーションの新元号対応 | Microsoft Docs
DateTime.ToString Method (System) | Microsoft Docs
CultureInfo Class (System.Globalization) | Microsoft Docs
JapaneseCalendar Class (System.Globalization) | Microsoft Docs


2019年2月24日

【Mac】インストールを完了できませんでした

今日、私が持ってるMac Book Air のBluetoothのバージョンを知りたくて久々に電源を入れたところ、いきなりアップデートらしきものが始まりました。

あれっ、なんかアップデート始まったなぁ・・・なんて思っていると、



macOSのインストールを完了できませんでした。

えぇぇぇ、マジでぇぇぇ!!!

このあと何回か再起動も試してみたものの、そのたびにこのメッセージが出てきてどうすることも出来なくなってしまった。

ガーン!

以前もOSをHigh Sierraにアップデートしたときに失敗してどうにも復旧することが出来なくなってしまい、泣く泣くクリーンインストールした記憶があるのだが、まさか今回もクリーンインストールなのか!?

Xamarinとか開発環境をまた一から構築しないといけないのかよ!

そんな不安が一瞬頭をよぎったが、ネットで調べてみると案外簡単に元に戻せることが分かり、同じように試してみたのだが。。。

2019年2月13日

【注意】Amazonを装った怪しいメールが来た

どうもお久しぶりです。

今年に入って初めての投稿です。

最近というか昨年からプログラミング関係の記事を書いてなかったのですが、本日もまた全然関係ない迷惑メールの記事です。サーセン。

では、今日届いた怪しいメールを見ていただきましょう。
ただ今回、犯人は致命的なミスを犯しています!(笑)