Olá Colegas,
Assis, obrigado pelos apontamentos!
Alexandre, mais uma vez obrigado! Aquela questão que mencionamos na geração das datas, me parece resolvida.
Estou tentando adaptar o código para o meu projeto, mas estou empacado na rotina GravaAgenda.
Como te disse, sou leigo em SQL, mas tentei ir palpando no escuro e realizei umas adaptações nessa rotina, mas estou tendo a mensagem de erro 3134 "Erro de sintaxe na instrução INSERT INTO".
- Código:
Public Function GravaAgenda() As Boolean
'On Error GoTo trata_erro
Dim x As Integer
If Valida = False Then Exit Function
Set DB = CurrentDb
With lstAgenda
For x = 1 To .ListCount - 1
If .Column(4, x) = "Em Agendamento" Then
sSQL = "INSERT INTO tblAgenda ( "
sSQL = sSQL & ",IDPaciente"
sSQL = sSQL & ",NomePaciente"
sSQL = sSQL & " DataAtendimento"
sSQL = sSQL & ",DiaSemana"
sSQL = sSQL & ",HoraAtendimento"
sSQL = sSQL & ",StatusAgendamento"
sSQL = sSQL & ",StatusConsulta"
sSQL = sSQL & ")"
sSQL = sSQL & " VALUES"
sSQL = sSQL & "("
sSQL = sSQL & "'" & .Column(7, x) & ""
sSQL = sSQL & ",'" & .Column(3, x) & "'"
sSQL = sSQL & ",'" & .Column(0, x) & "'"
sSQL = sSQL & "," & .Column(1, x) & "'"
sSQL = sSQL & "," & .Column(2, x) & "'"
sSQL = sSQL & ",'Agendado'"
sSQL = sSQL & ",'" & .Column(5, x) & "'"
sSQL = sSQL & ")"
DB.Execute sSQL
End If
Next x
End With
GravaAgenda = True
Exit Function
trata_erro:
GravaAgenda = False
Exit Function
End Function
Coloquei aspas simples no tratamento do erro para entender a origem, e ele me aponta para a linha
DB.Execute sSQL.
Só para contextualizar, eu importei seu formulário para o meu projeto junto com a tabela de periodicidade.
A tabela pacientes eu já possuo e a tabela agenda (tblAgenda) também.
A tabela Médicos não se aplica pois o meu projeto é para consultório com um único profissional.
Substituí em todo o código as referências de tabela e campos.
Nesse código acima, da função GravaAgenda, mantive os campos na ordem da tabela, como o seu, e alterei as colunas da listagem em VALUES.
Saberia me dizer oq está dando errado na minha construção?
Tomo a liberdade de disponibilizar uma amostra do meu projeto com essas informações e as tabelas envolvidas, no link abaixo (não consegui anexar):
https://www.dropbox.com/s/8ojmneeqa6d7mro/SistemaPsiExemplo.accdb?dl=0
As demais funções, acredito estarem rodando bem. Selecionando o nome na combobox, carrega os agendamentos na listbox e inserindo os parâmetros e acionando o comando gerar, são gerados os registros "Em agendamento" de forma correta.
O problema está sendo realmente no comando de gravar.
Agradeço novamente a atenção e seu tempo.