GALERA ME AJUDEMM PLEASE

FABRICIOWEB 12/11/2013 20:39:45
#431069
GALERA OQUE EU ESTOU FAZENDO DE ERRADO NO BANCO DE DADOS COM 3 CAMINHO DE IMGENS DIFERENTE MAIS SO APARECE ESSA AE ESSE AE E MEU CODIGO QUE ESTOU USANDO
POR FAVOR ALGUEM ME AJUDE




Private Sub cmdImprimir1_Click()
Dim db_file As String
Dim conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim FOTO As String
On Error GoTo ERRO
If MsgBox([Ô]Confirma a impressão da OS?[Ô], vbQuestion + vbYesNo + vbDefaultButton2, [Ô]SisBorda[Ô]) = vbNo Then Exit Sub



[ô] Get the data.
db_file = App.path
If Right$(db_file, 1) <> [Ô]\[Ô] Then db_file = db_file & [Ô]\[Ô]
db_file = db_file & [Ô]\dados\dados.mdb[Ô]

[ô] Open a connection.
Set conn = New ADODB.Connection
conn.ConnectionString = _
[Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & db_file & [Ô];[Ô] & _
[Ô]Persist Security Info=False[Ô]
conn.Open

[ô] Open the Recordset.
[ô]Set rs = conn.Execute([Ô]SELECT * FROM osentra[Ô], , adCmdText)
Set RS = conn.Execute([Ô]SELECT * FROM OSENTRA WHERE OSN =[ô][Ô] & BUSCA.Text & [Ô][ô][Ô], , adCmdText)
[ô] Connect the Recordset to the DataReport.
Set rptdinamico.DataSource = RS
rptdinamico.WindowState = vbMaximized

With rptdinamico.Sections([Ô]section1[Ô])




Set .Controls([Ô]Image1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
RS.MoveFirst






End With





rptdinamico.Show vbModal

RS.Close
conn.Close

Exit Sub
ERRO:




End Sub
FILMAN 12/11/2013 20:48:25
#431071
Como esta a sua tabela?

Os caminhos estão cada um em uma coluna especifica ou cada um esta em uma linha

vejo que no seu código você somente esta atribuindo uma imagem e não as outras

Set .Controls([Ô]Image1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)

não existe um LOOP para pegar outras linhas caso seja necessário
FABRICIOWEB 12/11/2013 20:50:26
#431072
EM CADA LINHA SEPARADA
FILMAN 12/11/2013 20:56:54
#431073
Então você tem que fazer um LOOP para pegar as próximas linhas

mas você tem quantos componentes Image para atribuir uma imagem no seu FORM.

Creio que seja somente 1 pelo o que eu vi. Então você precisa padronizar o relatório para receber as três imagens.
FABRICIOWEB 12/11/2013 21:22:51
#431075
TENTEI UM LOOP AQUI MAIS DEU ERRADO

Dim db_file As String
Dim conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim FOTO As String
On Error GoTo ERRO
If MsgBox([Ô]Confirma a impressão da OS?[Ô], vbQuestion + vbYesNo + vbDefaultButton2, [Ô]SisBorda[Ô]) = vbNo Then Exit Sub



[ô] Get the data.
db_file = App.path
If Right$(db_file, 1) <> [Ô]\[Ô] Then db_file = db_file & [Ô]\[Ô]
db_file = db_file & [Ô]\dados\dados.mdb[Ô]

[ô] Open a connection.
Set conn = New ADODB.Connection
conn.ConnectionString = _
[Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & db_file & [Ô];[Ô] & _
[Ô]Persist Security Info=False[Ô]
conn.Open
Dim sos As Integer
sos = 1
While Not sos > 1
[ô] Open the Recordset.
[ô]Set rs = conn.Execute([Ô]SELECT * FROM osentra[Ô], , adCmdText)
Set RS = conn.Execute([Ô]SELECT * FROM OSENTRA WHERE OSN =[ô][Ô] & BUSCA.Text & [Ô][ô][Ô], , adCmdText)
[ô] Connect the Recordset to the DataReport.
Set rptdinamico.DataSource = RS
rptdinamico.WindowState = vbMaximized

Dim tont As Integer


tont = 1
With rptdinamico.Sections([Ô]section1[Ô])



Set .Controls([Ô]Image1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
RS.MoveFirst







End With
Wend




rptdinamico.Show vbModal

RS.Close
conn.Close

Exit Sub
FILMAN 12/11/2013 21:29:11
#431076
O LOOP não pode ser assim

Após essa linha
With rptdinamico.Sections([Ô]section1[Ô])

Faça assim

While Not RS.EOF
Set .Controls([Ô]Image1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
RS.MoveFirst
Wend


Lembrando que essa expressão esta sempre indo para o mesmo Control
Set .Controls([Ô]Image1[Ô]).Picture


O seja sempre atribuindo para o o objeto Image1 e ele sempre vai ter a ultima imagem.
FABRICIOWEB 12/11/2013 21:55:12
#431079
assim tambem nao deu

Dim db_file As String
Dim conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim FOTO As String
On Error GoTo ERRO




[ô] Get the data.
db_file = App.path
If Right$(db_file, 1) <> [Ô]\[Ô] Then db_file = db_file & [Ô]\[Ô]
db_file = db_file & [Ô]\dados\dados.mdb[Ô]

[ô] Open a connection.
Set conn = New ADODB.Connection
conn.ConnectionString = _
[Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & db_file & [Ô];[Ô] & _
[Ô]Persist Security Info=False[Ô]
conn.Open

[ô] Open the Recordset.
[ô]Set rs = conn.Execute([Ô]SELECT * FROM osentra[Ô], , adCmdText)
Set RS = conn.Execute([Ô]SELECT * FROM OSENTRA WHERE OSN =[ô][Ô] & BUSCA.Text & [Ô][ô][Ô], , adCmdText)
[ô] Connect the Recordset to the DataReport.
Set rptdinamico.DataSource = RS
rptdinamico.WindowState = vbMaximized


With rptdinamico.Sections([Ô]section1[Ô])


While Not RS.EOF
Set .Controls([Ô]IMAGE1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
RS.MoveFirst


Wend
End With


rptdinamico.Show vbModal

RS.Close
conn.Close

Exit Sub
FILMAN 13/11/2013 00:47:47
#431084
mas a imagem mudou?
você depurou o seu código e viu se o sistema esta realmente capturando as informações corretas?
você leu o que eu escrevi referente ao objeto Image1?

Detalhe melhor o que esta ocorrendo para que possamos ajudar você
FABRICIOWEB 13/11/2013 07:23:07
#431085
o sistema trava como se o loop nao tivesse fim
FABRICIOWEB 14/11/2013 12:12:22
#431138
alguemm?
SIBEMM 14/11/2013 16:12:20
#431153
Meu caro, boa tarde.
Altere isso...
Citação:

While Not RS.EOF
Set .Controls([Ô]IMAGE1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
RS.MoveFirst


Wend


por isso:
Citação:

While Not RS.EOF
Set .Controls([Ô]IMAGE1[Ô]).Picture = LoadPicture(RS.Fields(27).Value)
Wend
RS.MoveFirst



O que está acontecendo é que você nunca chegará ao fim dos registros, como você sempre manda ele pro primeiro.
Página 1 de 2 [17 registro(s)]
Tópico encerrado , respostas não são mais permitidas