Olá a todos. Após buscas neste fórum e outros sites semelhantes não consegui encontrar nada parecido para minha questão:
Tenho um Formulário acoplado com um Subformulário, onde minha intenção é inserir imagens neste Subformulário relacionadas ao Formulário que por sua vez é baseada em 1 tabela, ou seja, o relacionamento é de 1 para vários; preciso que seja mostrado em cada registro a imagem correspondente a este registro, pois da forma que fiz, quando clico em determinado registro ele mostra em todos os demais a imagem deste registro selecionado.
Exemplo: 1) Inclui 4 registros. Quando fiz a inclusão através do botão "Inserir" ele mostra a mesma imagem em todos os 4 registros quando clico no registro inserido, por Resultado: No registro 1 inseri um arquivo JPG, no registro 2 inseri um arquivo BMP, no registro 3 inseri um arquivo GIF, no registro 4, inseri um arquivo TIF. Ao clicar no registro 1, o mesmo é mostrado em todos os demais registros, se clico no registro 3, a mesma coisa, e assim por diante.
OBS: A rotina abaixo é de autoria do nosso colega Vieira, que fiz através de download neste site, usada para formulário simples.
O SubFormulário está em modo formulário contínuo, então aconteceu o seguinte:
1) Na tabela origem do Subformulário criei o campo "ImagemAnexo" (tipo: Texto)
- Onde é gravado o caminho do arquivo da imagem, através do item 3 abaixo)
2) No Subformulário: criei um controle Imagem de nome "Imagem2"
- onde é mostrada a imagem capturada através do botão "InserirAnexo"
3) No SubFormulário: Coloquei os comandos no botão "InserirAnexo":
ImagemAnexo.SetFocus
Dim s As String
s = OpenCommDlg() 'ATT: com módulo para buscar arquivo e gravar caminho na Tabela do Subformulário
If s <> "" Then
ImagemAnexo = s
ImagemAnexo_AfterUpdate
End If
4) No SubFormulário: Tem o campo "ImagemAnexo" e coloquei os comandos no evento "Após atualizar"
Private Sub ImagemAnexo_AfterUpdate()
Dim s As String
s = Nz(ImagemAnexo.Value, "")
If s <> "" Then s = IIf(Dir(s) = "", "", s)
On Error Resume Next
Imagem2.Picture = s
If Err.Number <> 0 Then Imagem2.Picture = ""
On Error GoTo 0
End Sub
5) No SubFormulário: Coloquei os comandos nas propriedades no evento "No Atual"
Private Sub Form_Current()
ImagemAnexo_AfterUpdate
End Sub
Como faço para cada registro mostrar apenas seu arquivo correspondente ao ser selecionado ? Existe outra forma de fazer, se tiver um exemplo para download também serve. Também pretendo imprimir essas imagens em 1 Subrelatório acoplado a 1 Relatório.
Tenho um Formulário acoplado com um Subformulário, onde minha intenção é inserir imagens neste Subformulário relacionadas ao Formulário que por sua vez é baseada em 1 tabela, ou seja, o relacionamento é de 1 para vários; preciso que seja mostrado em cada registro a imagem correspondente a este registro, pois da forma que fiz, quando clico em determinado registro ele mostra em todos os demais a imagem deste registro selecionado.
Exemplo: 1) Inclui 4 registros. Quando fiz a inclusão através do botão "Inserir" ele mostra a mesma imagem em todos os 4 registros quando clico no registro inserido, por Resultado: No registro 1 inseri um arquivo JPG, no registro 2 inseri um arquivo BMP, no registro 3 inseri um arquivo GIF, no registro 4, inseri um arquivo TIF. Ao clicar no registro 1, o mesmo é mostrado em todos os demais registros, se clico no registro 3, a mesma coisa, e assim por diante.
OBS: A rotina abaixo é de autoria do nosso colega Vieira, que fiz através de download neste site, usada para formulário simples.
O SubFormulário está em modo formulário contínuo, então aconteceu o seguinte:
1) Na tabela origem do Subformulário criei o campo "ImagemAnexo" (tipo: Texto)
- Onde é gravado o caminho do arquivo da imagem, através do item 3 abaixo)
2) No Subformulário: criei um controle Imagem de nome "Imagem2"
- onde é mostrada a imagem capturada através do botão "InserirAnexo"
3) No SubFormulário: Coloquei os comandos no botão "InserirAnexo":
ImagemAnexo.SetFocus
Dim s As String
s = OpenCommDlg() 'ATT: com módulo para buscar arquivo e gravar caminho na Tabela do Subformulário
If s <> "" Then
ImagemAnexo = s
ImagemAnexo_AfterUpdate
End If
4) No SubFormulário: Tem o campo "ImagemAnexo" e coloquei os comandos no evento "Após atualizar"
Private Sub ImagemAnexo_AfterUpdate()
Dim s As String
s = Nz(ImagemAnexo.Value, "")
If s <> "" Then s = IIf(Dir(s) = "", "", s)
On Error Resume Next
Imagem2.Picture = s
If Err.Number <> 0 Then Imagem2.Picture = ""
On Error GoTo 0
End Sub
5) No SubFormulário: Coloquei os comandos nas propriedades no evento "No Atual"
Private Sub Form_Current()
ImagemAnexo_AfterUpdate
End Sub
Como faço para cada registro mostrar apenas seu arquivo correspondente ao ser selecionado ? Existe outra forma de fazer, se tiver um exemplo para download também serve. Também pretendo imprimir essas imagens em 1 Subrelatório acoplado a 1 Relatório.