Boa noite,
Veja a resposta (e comentários) da questão abaixo :
Edição 13/08: Correção do exemplo
BancoDefeitos.odb (Exemplo - Registre antes de usar a planilha)
PlanilhaFonte.ods (Com a macro abaixo)
Sub SalvarDadosBD()
Dim oPlan As Object, oDBC As Object, oBD As Object, oConexao As Object, oDeclaracao As Object
Dim oBloco As Object, vData As Double
Dim sData As String, sTurno As String, sCodigo As String, sMaquina As String 
Dim sDefeitoA As String, sDefeitoB As String, sDefeitoC As String, sDefeitoD As String
Dim sQtdTotalRef As String, sTotal As String, sNome_Tabela As String, sCampos As String
Dim sValores As String, sSQL As String, sBanco As String
   ' Obter a planilha com campos'
   oPlan = ThisComponent.Sheets.getByName("PlanForm")   
   
   ' Pegar o valor do campo data'
   vData = oPlan.getCellRangeByName("C2").Value
   ' Sair se o campo data estiver vazio'
   If vData = 0 Then Exit Sub
   ' Formatar a data para inserir no banco'
   sData = Year(vData) & "-" & Month(vData) & "-" & Day(vData)
   ' Recuperar os demais campos da planilha'
   sTurno = oPlan.getCellRangeByName("C3").String
   sCodigo = oPlan.getCellRangeByName("C4").String
   sMaquina = oPlan.getCellRangeByName("C5").String
   sDefeitoA = oPlan.getCellRangeByName("C6").String
   sDefeitoB = oPlan.getCellRangeByName("C7").String
   sDefeitoC = oPlan.getCellRangeByName("C8").String
   sDefeitoD = oPlan.getCellRangeByName("C9").String
   sQtdTotalRef = oPlan.getCellRangeByName("C10").String
   sTotal = oPlan.getCellRangeByName("C11").String
   
   ' Preparar a instrução SQL'
   sNome_Tabela = " ""Defeitos"" " 
   sCampos = """Data"",""Turno"",""Codigo"",""Maquina"",""DefeitoA""," & _
             """DefeitoB"",""DefeitoC"",""DefeitoD"",""QtdTotalRef"",""Total"""
   sValores = "'" & sData & "','" & sTurno & "','" & sCodigo & "','" & sMaquina & _
              "','" & sDefeitoA & "','" & sDefeitoB & "','" & sDefeitoC & "','" & _
              sDefeitoD & "','" & sQtdTotalRef & "','" & sTotal & "'"
   ' Tratar as células em branco com Null'
   sValores = Replace( sValores, "''","Null")
   ' Configurar a cláusura INSERT INTO'
   sSQL = "INSERT INTO " & sNome_Tabela & " (" & sCampos & ") VALUES (" & sValores & ")" 
   
   ' Obter a conexão ao Banco Defeitos'
   sBanco = "BancoDefeitos" 'O banco PRECISA estar registrado.
   oDBC = createUnoService( "com.sun.star.sdb.DatabaseContext" )
   If Not oDBC.hasByName( sBanco ) Then
      Msgbox "É preciso registrar o banco '" & sBanco & "' antes de prosseguir.",64
      Exit Sub
   End If
   oBD = oDBC.getByName( sBanco )
   oConexao = oBD.getConnection( "","" )
   
   ' Executar o SQL'
   oDeclaracao = oConexao.createStatement()
   oDeclaracao.executeUpdate( sSQL )
   
   ' Fechar a conexão e liberar a memória'
   oDeclaracao.close()
   oConexao.close()
   oDeclaracao = Nothing
   oConexao = Nothing
   
   MsgBox "Dados salvos na tabela '" & sNome_Tabela & "'!",0
   
   ' Limpar as células'
   '   Parâmetro: Valor(1)+Data/Hora(2)+Texto(4) = 7'
   oBloco = oPlan.getCellRangeByName("C2:C11")
   oBloco.ClearContents( 7 )
End Sub
Para resgatar as informações, você pode usar o método descrito na resposta a:
Atte,