DUVIDA AO UTILIZAR CAMPO DO TIPO OLE
Galera é o seguinte, preciso desenvolver uma aplicação em VBA que faça exatamente o seguinte:
Copie de um diretório um arquivo.DOC e depois cole no campo(tipo OLE) access.
Depois quando necessário, faça o inverso copie do access e cole no diretório.
Fiz essa operação manualmente e funciona, porém via código não estou conseguindo.
Copie de um diretório um arquivo.DOC e depois cole no campo(tipo OLE) access.
Depois quando necessário, faça o inverso copie do access e cole no diretório.
Fiz essa operação manualmente e funciona, porém via código não estou conseguindo.
Desenvolvi o código abaixo e deu certo:
Dim mystream As ADODB.Stream
Dim rs As New ADODB.Recordset
Dim strNomeArq As String
Dim strSql As String
If txtCaminhoOrigem.Text = "" Then
MsgBox "Selecione o caminho de origem!", vbCritical + vbOKOnly, "Controle de Aplicativo"
Exit Sub
End If
strNomeArq = Inverte(txtCaminhoOrigem.Text)
If sConn.State = 0 Then
Call Conecta_Banco_dados
End If
strSql = "Select * from TB_Item_EFuncional where PK_item_EP_Codigo ='" & strCodigoProjeto & "'"
Set sRs = sConn.Execute(strSql)
Set mystream = New ADODB.Stream
'Define o tipo como binário
mystream.Type = adTypeBinary
If sRs.EOF Then
rs.Open "TB_Item_EFuncional", sConn, adOpenDynamic, adLockOptimistic
rs.AddNew
mystream.Open
mystream.LoadFromFile txtCaminhoOrigem.Text
rs!PK_item_EP_Codigo = strCodigoProjeto
rs!item_EP_NomeArq = strNomeArq
rs!item_EP_Tamanho = mystream.Size
rs!item_EP_Arquivo = mystream.Read
rs.Update
Else
rs.Open "Select * from TB_Item_EFuncional where PK_item_EP_Codigo ='" & strCodigoProjeto & "'", sConn, adOpenDynamic, adLockOptimistic
mystream.Open
mystream.LoadFromFile txtCaminhoOrigem.Text
rs!item_EP_NomeArq = strNomeArq
rs!item_EP_Tamanho = mystream.Size
rs!item_EP_Arquivo = mystream.Read
rs.Update
End If
mystream.Close
rs.Close
sRs.Close
sConn.Close
Dim mystream As ADODB.Stream
Dim rs As New ADODB.Recordset
Dim strNomeArq As String
Dim strSql As String
If txtCaminhoOrigem.Text = "" Then
MsgBox "Selecione o caminho de origem!", vbCritical + vbOKOnly, "Controle de Aplicativo"
Exit Sub
End If
strNomeArq = Inverte(txtCaminhoOrigem.Text)
If sConn.State = 0 Then
Call Conecta_Banco_dados
End If
strSql = "Select * from TB_Item_EFuncional where PK_item_EP_Codigo ='" & strCodigoProjeto & "'"
Set sRs = sConn.Execute(strSql)
Set mystream = New ADODB.Stream
'Define o tipo como binário
mystream.Type = adTypeBinary
If sRs.EOF Then
rs.Open "TB_Item_EFuncional", sConn, adOpenDynamic, adLockOptimistic
rs.AddNew
mystream.Open
mystream.LoadFromFile txtCaminhoOrigem.Text
rs!PK_item_EP_Codigo = strCodigoProjeto
rs!item_EP_NomeArq = strNomeArq
rs!item_EP_Tamanho = mystream.Size
rs!item_EP_Arquivo = mystream.Read
rs.Update
Else
rs.Open "Select * from TB_Item_EFuncional where PK_item_EP_Codigo ='" & strCodigoProjeto & "'", sConn, adOpenDynamic, adLockOptimistic
mystream.Open
mystream.LoadFromFile txtCaminhoOrigem.Text
rs!item_EP_NomeArq = strNomeArq
rs!item_EP_Tamanho = mystream.Size
rs!item_EP_Arquivo = mystream.Read
rs.Update
End If
mystream.Close
rs.Close
sRs.Close
sConn.Close
Tópico encerrado , respostas não são mais permitidas