[Excel]ExcelでSQLite操作

ExcelでSQLite操作手順を共有いたします。

SQLiteForExcelをダウンロードする

https://github.com/govert/SQLiteForExcel/releases

SQLite For Excel Version 1.0 Zipファイルをダウンロードする。

・ダウンロードされたZipファイルを解凍する。

・解凍されたファイルの「Distribution」フォルダを開き、以下のファイルをコピーして作業用フォルダに貼り付ける。

 1.PCのスペックが32Bitの場合

  「Distribution」フォルダの中の以下

  SQLite.dll

  SQLite3_StdCall.dll

SQLiteForExcel.xls

  2.PCのスペックが64Bitの場合

   「Distribution」フォルダの中の以下

SQLite3_StdCall.dll

SQLiteForExcel_64.xls

   「Distribution」フォルダの「x64」フォルダ中の以下

 SQLite.dll

・SQLiteのDBファイルを作業フォルダの下におく。

 例えば、ファイル名:Test.sqlite3

・例えば、64Bitの場合、SQLiteForExcel_64.xlsを開き、標準モジュールの「Sqlite3Demo」のAllTests関数の以下のように変更する。

TestFile = “保存フォルダ\Test.sqlite3”

InitReturn = SQLite3Initialize(ThisWorkbook.Path)
ここで、ThisWorkbook.Path(=ActiveのExcelファイルがあるフォルダ)にSQLite.dllあることを再確認しておく。

・Select文確認

例えば、関数TestSqliteSelect作成して、以下のコードを埋め込む。

Public Sub TestSelectCustomize()
    #If Win64 Then
    Dim myDbHandle As LongPtr
    Dim myStmtHandle As LongPtr
    #Else
    Dim myDbHandle As Long
    Dim myStmtHandle As Long
    #End If
    Dim RetVal As Long
    
    Dim stepMsg As String
    
    Debug.Print "----- TestSelect Start -----"
    ' Open the database - getting a DbHandle back
    RetVal = SQLite3Open(TestFile, myDbHandle)
    Debug.Print "SQLite3Open returned " & RetVal
    
    '-------------------------
    ' Select statement
    ' ===============
    ' Create the sql statement - getting a StmtHandle back
    RetVal = SQLite3PrepareV2(myDbHandle, "SELECT * FROM " & TableName, myStmtHandle)
    Debug.Print "SQLite3PrepareV2 returned " & RetVal

    ' Start running the statement
    RetVal = SQLite3Step(myStmtHandle)
    If RetVal = SQLITE_ROW Then
        Debug.Print "SQLite3Step Row Ready"
        PrintColumns myStmtHandle
    Else
        Debug.Print "SQLite3Step returned " & RetVal
    End If
    
    
    Dim colCount As Long
    Dim colName As String
    Dim colType As Long
    Dim colTypeName As String
    Dim colValue As Variant
    
    Dim i As Long
    
    colCount = SQLite3ColumnCount(myStmtHandle)
    Debug.Print "Column count: " & colCount
    For i = 0 To colCount - 1
        colName = SQLite3ColumnName(myStmtHandle, i)
        colType = SQLite3ColumnType(myStmtHandle, i)
        colTypeName = TypeName(colType)
        colValue = ColumnValue(myStmtHandle, i, colType)
        Debug.Print "Column " & i & ":", colName, colTypeName, colValue
    Next
    
    
    ' Close the database
    RetVal = SQLite3Close(myDbHandle)

    Debug.Print "----- TestSelect End -----"
End Sub

[Server Connection]vs codeでXserver接続

vscodeでXserver接続手順を共有します。

・Tera Term起動する。

・公開鍵、秘密鍵生成する。

Tera Termメニュー > 設定 > SSH鍵生成

鍵の種類:RSA

生成ボタン押下

鍵のパスフレーズ入力する

例:test

パスフレーズの確認

例:test

公開鍵の保存する。

秘密鍵を保存する。

・Xserverにて、SSHに公開鍵を登録する。

サーバーパネル > SSH設定 > 変更を「ONにする」選択 >設定する。

公開鍵を登録する。

・vs codeにて「SSH FS」インストールする。

・メニュー > View > SSH FS : Create a SSH FS Configuration

以下の登録する。

Name :xserver

Label : xserver

host : sv1111.server.jp

※ホスト名:sv1111.server.jp

Port : 10022

Root : /home/svname

   ※サーバーID : svname

Username : svname

    ※Tera Termで鍵作成時にUsername : svname

Password : true

Private key : /TEST/rsa/id_rsa

     ※秘密鍵の保存場所とファイル指定

Passphrase : test

     ※Tera Termで鍵作成時にパスプレース : test

・vs codeの「SSH FILE SYSTEMS」の「xserver」を右クリックして、「Connect Workspace Folder」選択

・SSH FS -xserverの下にツリー構造でDirectoryが表示されること。

[Server Connection]Tera TermでXserver接続

Tera TermでXserverに接続する手順を共有します。

・Tera Term起動する。

・公開鍵、秘密鍵生成する。

Tera Termメニュー > 設定 > SSH鍵生成

鍵の種類:RSA

生成ボタン押下

鍵のパスフレーズ入力する

例:test

パスフレーズの確認

例:test

公開鍵の保存する。

秘密鍵を保存する。

・Xserverにて、SSHに公開鍵を登録する。

サーバーパネル > SSH設定 > 変更を「ONにする」選択 >設定する。

公開鍵を登録する。

・Tera Termにてホスト入力する

ホスト:Xserverのホスト名

例、sv1111.xserver.jp

・TCPポート入力

TCPポート : 10022

・サービス選択

SSH

・OKボタン押下する。

・ユーザ名を入力する

XserverのサーバーID

例、svname

・パスフレーズ

Tera Termで公開鍵、秘密鍵作成時に「パスフレーズ」登録する。

・RSA/・・・の「秘密鍵」ボタン押下して、Tera Termで作成して秘密鍵を選択する。

・OKボタン押下する。

・接続されることを確認する。

正常に接続されると、

Last login: Mon Jun 1 12:34:56 1234 from m111111111111.v4.enabler.ne.jp
[svname@sv1111 ~]$

[Salesforce]Sandboxと本番環境の判定

Sandboxと本番環境の判定について共有します。

Organization org = [select Id, IsSandbox from Organization limit 1];
System.debug(‘—– org.IsSandbox : ‘+org.IsSandbox);

実行結果

Sandbox環境の場合
—– org.IsSandbox : true

本番環境の場合
—– org.IsSandbox : false

Visualforceページタグ表示切替


確認方法

VFページを表示し、短縮キーCtrl-u押下して、Sandbox環境には表示されないが、本番環境では表示されることを確認する。

[Salesforce]Apexトリガーエラーメッセージ

Apexトリガーエラーメッセージについて共有します。

test__c newObj = Trigger.new[i];

if (Trigger.isInsert) {
// commnet1
newObj.test__c = ‘comment1’;
} else {
test oldObj = Trigger.old[i];
if (newObj.test__c != oldObj.test__c &&
newObj.test__c == ‘test’) {
if(newObj.test2__c != newObj.test2__c) {
newObj.addError(‘エラーメッセージ’);
} else {
//xxx
}
}
}