ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

OpenOfficeで、データベース(Base)の内容を、表計算(Calc)に書いて印刷するマクロ

2007-02-02 20:26:38 | OpenOffice

 OpenOfficeの話で、いままで印刷とデータベースの話を書いたので、2つあわせて
データベース(Base)の内容を、表計算(Calc)に書いて印刷するマクロについて取り上げてみます。




■仕様

●C:¥temp¥テスト.ods(¥は、本当は半角)にあるOpenOffice Calc(表計算)の"テスト"というシートを開き、

●データベース名が"テスト用"という名前の、データベースをアクセスして、
"Select * From 顧客テーブル"
を実行して、顧客テーブルの内容を受け取り

●DBの内容を
  1項目目をA桁、
  2項目目をB桁、
  3項目目をC桁、
  4項目目をD桁、
に、1行目から、1レコードづつ、順に、上記の「テスト」というシートに書いて
印刷する




■ソース

ソースはこんなかんじです。
sub Main
	dim document   as object
	dim dispatcher as object
	dim args1(1) as new com.sun.star.beans.PropertyValue
	Dim oDoc as object
	
	'**** データベース関係
	Dim DatabaseContext as object
	Dim DataSource as Object
	Dim Connection as Object
	Dim Statement as Object
	Dim ResultSet as Object

 	'**** スプレッドシートを開く
	sURL = ConvertToURL("C:¥temp¥テスト.ods") 
	oDoc = starDesktop.loadComponentFromURL(sURL,"_default",0,Array()) 

 	'**** 値を設定する
	Sheet= oDoc.Sheets.getByName("テスト") 	'	シートを選ぶ

	REM  ***** データベースのコネクション  *****
	DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext") 
	DataSource=DatabaseContext.getByName("テスト用") 


	REM  ***** SQLの実行  *****
	Connection = DataSource.GetConnection("","")
	Statement = Connection.createStatement()
	ResultSet= Statement.executeQuery("Select * From 顧客テーブル")

	REM  ***** レコードをワークシートに設定 *****
	If  IsNull(ResultSet) Then
		MsgBox("レコードがありません")
	Else
		i	=	0
        While   ResultSet.next
			Cell =Sheet.getCellByPosition(0,i)	
			Cell.setString(ResultSet.getString(1))		
			Cell =Sheet.getCellByPosition(1,i)	
			Cell.setString(ResultSet.getString(2))
			Cell =Sheet.getCellByPosition(2,i)	
			Cell.setString(ResultSet.getString(3))
			Cell =Sheet.getCellByPosition(3,i)	
			Cell.setString(ResultSet.getString(4))
			i = i + 1
        Wend
	End If

	'**** 印刷
	mPrintopts = oDoc.getPrinter() 
 	mPrintopts(0).Name = "CopyCount"
 	mPrintopts(0).Value = 1		'1個出力
 	oDoc.Print(mPrintopts())
end sub

(上記¥は、本当は半角)

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 松丸アナとプラナリアで、目... | トップ | 硫黄島生還者の手記が、映画... »
最新の画像もっと見る

OpenOffice」カテゴリの最新記事