【OpenOffice Base】DBファイルをフォルダ移動したらエラーになったときの解決方法【2018】
DBファイルをフォルダ移動したらエラーになったときの解決方法
ちょっとOpenOfficeで、表計算ソフト「Calc」からデータベース「Base」の情報を参照するお仕事が発生しました。データベースをひと通り作成し表計算ソフトからデータベースを読み込むマクロを作成、実行。処理は正常に終了し、データベースファイルを整理しようとして、他のフォルダに移動。
また、データベースを読み込むマクロを実行するとエラーメッセージが表示される。エラーメッセージの内容は、「〇〇フォルダにデータベースファイルがないよ」というものです。
調べた結果、表計算ソフト「Calc」又は、データベース「Base」どちらでもいいんですが、オプション⇒OpenOffice Base⇒データベースの登録されたデータベースに登録されている該当データベースパスを実際に置かれているフォルダパスに変更すればエラーは発生しなくなります。
データベースアクセスのサンプルマクロ
'- データベース用オブジェクト作成
DatabaseContext=createUnoService(“com.sun.star.sdb.DatabaseContext")
'- データベースファイルを開く
'- getByNameに設定するデータベース名は〇〇〇〇〇.odbの場合、〇〇〇〇〇を指定する
DataSource=DatabaseContext.getByName(“〇〇〇〇〇")
'- ユーザ名、パスワードを空白で接続
Connection = DataSource.GetConnection(“","")
dim sSql as String
sSql = “SELECT a.col1, a.col2, b.col3, b.col4 "
sSql = sSql & “FROM work1 a, work2 b "
sSql = sSql & “WHERE a.id = b.id "
sSql = sSql & “order by a.id "
'- SQLの実行
Statement = Connection.createStatement()
ResultSet= Statement.executeQuery(sSql)
'- レコードの読み込み
If IsNull(ResultSet) Then
'– 検索されたレコード件数が0件
Else
'– 1つ目のカラム名の取得
sColumnName1 = ResultSet.Columns.ElementNames(0)
While ResultSet.next
'– 1カラム目のデータ項目を取得
sValue = ResultSet.getString(1)
Wend
End If
'- データベースを閉じる
Statement.Close()
Connection.Close()
Connection.Dispose()
End Sub
ディスカッション
コメント一覧
まだ、コメントがありません