Pergunte aqui
1

Erro de execução do BASIC. Procedimento Sub ou procedimento de Function não definido.

perguntadas 2018-11-05 23:48:50 +0100

imagem do gravatar de rubenlopez47

updated 2019-03-01 18:06:56 +0100

Preciso fazer um formulário que coloque a data e a hora de entrada automaticamente.

Sub Main

  Dim oForm, oData, oEntrada, oSaida, oNome, oLotacao, oDocumento as Object


  Set oForm=Forms("MainForm")
  oData = Date
  oEntrada = Time
  datData.txt = oData
  timEntrada.txt = oEntrada


End Sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

1

respondidas 2018-11-10 14:48:25 +0100

imagem do gravatar de Grafeno

updated 2018-11-10 15:37:03 +0100

Bom dia,

Parece que você tentou inserir a data e a hora atual em controles campo de data e campo de tempo. Acontece que no LibreOffice estes controles aceitam valores apenas em estruturas (estructures). Então o código ficaria da seguinte forma:

Sub Main
Dim oDoc, oForm, odatData, otimEntrada
Dim oData As New com.sun.star.util.Date 'Estrutura para a data'
Dim oEntrada As New com.sun.star.util.Time 'Estrutura para o tempo'

   oDoc = ThisComponent
   oForm = oDoc.Drawpage.Forms.getByName("MainForm")

   odatData = oForm.getByName("datData")
   With oData
     .Year = Year(Date)
     .Month = Month(Date)
     .Day = Day(Date)
   End With
   odatData.Date = oData

  otimEntrada = oForm.getByName("timEntrada")
   With oEntrada
     .Hours = Hour(Time)
     .Minutes = Minute(Time)
   End With
   otimEntrada.Time = oEntrada 

   odatData.Commit()
   otimEntrada.Commit()

End Sub

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Muito obrigado. Deu certo, os campos foram preenchidos automaticamente mas os valores não estão sendo gravados na tabela. Não sei porque

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-10 15:23:12 +0100 )editar

@rubenlopez47, é que me esqueci de duas linhas importantes:

odatData.Commit()
otimEntrada.Commit()

Agora acrescentei na resposta. Teste que vai dar certo.

imagem do gravatar de GrafenoGrafeno ( 2018-11-10 15:35:31 +0100 )editar

Muito obrigado. Deu certo. Agora se puder me tirar outra duvida. Quero colocar um botão para registrar a saída. Quando a pessoa sair, eu pressiono o botão de "Registrar Saida", e no campo saída da tabela fica gravado o horário que a pessoa saiu. Pode me dar uma dica? Obrigado.

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-23 17:57:18 +0100 )editar

Tentei dessa forma mas não deu certo

Sub Macro1

Dim oSaida as New com.sun.star.util.Time

With oSaida
  .Hours = Hour(Time)
  .Minutes = Minute(Time)
End With

oSaida.Commit()

End Sub

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-23 18:02:15 +0100 )editar

Tentei dessa forma também. Também não deu. Obrigado.

Sub RegistroSaida

Dim oDoc, oForm
Dim oSaida as New com.sun.star.util.Time

oDoc = ThisComponent
oForm = oDoc.Drawpage.Forms.getByName("MainForm")

oSaida = oForm.getbyname("TxtSaida")
With oSaida
  .Hours = Hour(Time)
  .Minutes = Minute(Time)
End With

oSaida.Commit()

End Sub

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-25 18:16:47 +0100 )editar

Recebo a seguinte mensagem: " O objeto não acessível. Utilização inválida de um objeto." Obrigado

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-25 18:21:24 +0100 )editar

Agora fiz dessa forma. Pensei que ia dar certo mas não deu. Seguinte mensagem: "Erro de execução do BASIC. Propriedade ou método não encontrado: Time."

Sub RegistroSaida

Dim oDoc, oForm, oTxtSaida
Dim oSaida as New com.sun.star.util.Time

oDoc = ThisComponent
oForm = oDoc.Drawpage.Forms.getByName("MainForm")

oTxtSaida = oForm.getbyname("TxtSaida")
With oSaida
  .Hours = Hour(Time)
  .Minutes = Minute(Time)
End With
oTxtSaida.Time = oSaida

oTxtSaida.Commit()

End S

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-26 15:46:36 +0100 )editar

Consegui agora, obrigado.

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-11-27 00:09:50 +0100 )editar

Bom dia. Como faço pra condicionar a macro da data ser executada apenas quando o campo estiver vazio? Muito obrigado.

imagem do gravatar de rubenlopez47rubenlopez47 ( 2018-12-04 15:10:55 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-11-05 23:48:50 +0100

Lidas: 92 vezes

Última atualização: Dec 19 '18