ERRO AO CADASTRAR FOTO EM BANCO DE DADOS
Pessoal,
Estou com dificuldades para resolver esta situação.
Preciso que seja feita uma consulta para verificar se já há uma foto pré-cadastrada no BD antes de inserir uma nova ou substituir.
BD Acess
ONDE ESTÃ O ERROI?
Private Sub SSCommand2_Click(Index As Integer)
Dim bb As Database
Dim rsfoto As Recordset
Set bb = OpenDatabase(caminho)
If Txt_cod.Text = [Ô][Ô] Then
MsgBox [Ô]Selecione um paciente![Ô]
Exit Sub
End If
codcli = Txt_cod.Text
[ô]On Error GoTo foto_erro
[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja
[ô]fotos = caminho no arquivo de configuração
If Dir(fotos & [Ô]\[Ô] & codcli, vbDirectory) = [Ô][Ô] Then
MkDir fotos & [Ô]\[Ô] & codcli
End If
[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja
Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form
Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])
If rsfoto.RecordCount > 0 Then [ô]SE Jà HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop
Else
chama_fotos [ô]ABRE A CAIXA DE DIÃLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])
[ô]End If
End Select
end sub
Estou com dificuldades para resolver esta situação.
Preciso que seja feita uma consulta para verificar se já há uma foto pré-cadastrada no BD antes de inserir uma nova ou substituir.
BD Acess
ONDE ESTÃ O ERROI?
Private Sub SSCommand2_Click(Index As Integer)
Dim bb As Database
Dim rsfoto As Recordset
Set bb = OpenDatabase(caminho)
If Txt_cod.Text = [Ô][Ô] Then
MsgBox [Ô]Selecione um paciente![Ô]
Exit Sub
End If
codcli = Txt_cod.Text
[ô]On Error GoTo foto_erro
[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja
[ô]fotos = caminho no arquivo de configuração
If Dir(fotos & [Ô]\[Ô] & codcli, vbDirectory) = [Ô][Ô] Then
MkDir fotos & [Ô]\[Ô] & codcli
End If
[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja
Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form
Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])
If rsfoto.RecordCount > 0 Then [ô]SE Jà HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop
Else
chama_fotos [ô]ABRE A CAIXA DE DIÃLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])
[ô]End If
End Select
end sub
Alguém?
só para simplificar o texto:
Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form
Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])
If rsfoto.RecordCount > 0 Then [ô]SE Jà HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop
Else
chama_fotos [ô]ABRE A CAIXA DE DIÃLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])
[ô]End If
End Select
só para simplificar o texto:
Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form
Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])
If rsfoto.RecordCount > 0 Then [ô]SE Jà HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop
Else
chama_fotos [ô]ABRE A CAIXA DE DIÃLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])
[ô]End If
End Select
Optei por realizar uma rotina que copia a imagem para: imagens\codigocliente\img1.jpg
O programa agora carrega o form direto da pasta >> load picture ...
Alguém poderia comentar desvantagens desta forma em relação a gravar o caminho no BD?
O programa agora carrega o form direto da pasta >> load picture ...
Alguém poderia comentar desvantagens desta forma em relação a gravar o caminho no BD?
Tenha certeza que vc fez a melhor escolha pois, gravando no DB poderia lhe dar muita dor de cabeça.
Ainda mais se for DB Access poÃs além de almentar o tamanha rapidamente, poderá corromper, diminuir a velocidade na rede/aplicação etc...
Excelente escolha!
[]'s
Ainda mais se for DB Access poÃs além de almentar o tamanha rapidamente, poderá corromper, diminuir a velocidade na rede/aplicação etc...
Excelente escolha!
[]'s
Nlsolucoes,
Creio que meu comentario seja mais simples:
não estava salvando a imagem no BD, mas apenas o caminho.
Mudei e passei a copiar o arquivo para uma pasta, sem anotar o caminho no BD
Creio que meu comentario seja mais simples:
não estava salvando a imagem no BD, mas apenas o caminho.
Mudei e passei a copiar o arquivo para uma pasta, sem anotar o caminho no BD
Citação:Creio que meu comentario seja mais simples:
não estava salvando a imagem no BD, mas apenas o caminho.
Mudei e passei a copiar o arquivo para uma pasta, sem anotar o caminho no BD
GNCNET,
Na falta de tempo e na itenção de lhe ajudar, dei mais atenção ao tÃtulo que diz [txt-color=#e80000][Ô]ERRO AO CADASTRAR FOTO EM BANCO DE DADOS[Ô][/txt-color] e uma passada rápida no seu último comentário.
Por isso o mal entendido!
Tópico encerrado , respostas não são mais permitidas