Отправка POST запроса из Basic (VBA в MS Office, Basic в OpenOffice.org / LibreOffice)

Разбираться с этим вопросом пришлось, когда я захотел импортировать данные на сайт из базы в MSAccess, без установки самого Access


Dim strData As String
Dim strResponse As String

strData = "postparam=postval&postparam2=postval2"

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "post", "http://site.info/path/to/script?Getparam=getval", False
objHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
objHTTP.Send strData
strResponse = objHTTP.responsetext

и далее обрабатываем строку strResponse.

Важно выполнить вызов objHTTP.setRequestHeader (иногда его пропускают). Без него этот код выполняется в MSO, но на сервер приходит пустой POST из OOo.

Ну а чтобы получить данные из уже присоединенной базы к OOBase:

Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim Statement As Object
Dim ResultSet As Object
Dim QueryString As String
Dim tmpStr As String

QueryString = "SELECT ""field1"" FROM ""table1"""

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("dbname")
Connection = DataSource.GetConnection("", "")
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery(QueryString)

tmpStr = ResultSet.getString(1)

и обрабатываем tmpStr.

Но все же лучше как нибудь обойтись без использования Basic, Base и Access