MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Falta de Referência

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Falta de Referência

    Mensagem  Edson1974 26/7/2011, 13:32

    Bom dia a todos,

    como o de sempre as dúvidas.
    Pessoal, estou passando pelo seguinte problema no momento da atualização do sistema nas máquinas dos usuários, o excel instalado na minha máquina está com a referência 11.0 que é a máquina que utilizo para desenvolver e de algumas máquinas dos usuários está 10.0, sempre que atualizo, de cara o sistema não rodo então tenho que entrar no código e alterar a referência.
    Consegui colocar para rodar uma rotina disponibilizada pelo Vieira e pelo o que entendi a rotina busca as referências que o sistema utiliza e copia os arquivos (.dll, .olb, etc) para o local em que destinei. Bom, gostaria de saber se copiar o arquivo do excel que a rotina buscou (no caso da minha máquina que é 11.0) e colar no destino correto de cada máquina que está com a referencia 10.0 não terei mais este problema?

    Valeu novamente.
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  vieirasoft 26/7/2011, 13:34

    Amigo Edson

    Você já experimentou? É que tenho instalado no 7 e no 10 e naõ tem surgido problemas. Aconselho a experimentar.
    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 26/7/2011, 13:38

    Vieira, primeiro obrigado pela resposta de bate pronto.

    Vou fazer o teste e respondo em seguida.

    Abraço.
    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 27/7/2011, 09:36

    Bom dia Vieira,

    fiz o teste com a referência do excel que citei antes e não funcionou. Na verdade onde trabalho existem bloqueios que impedem o usuário de manipular os arquivos do sistema então como não sou da área de TI da empresa não consegui colar o arquivo no local.

    Vou dar como resolvido mas se aparecer alguém com um problema semelhante e que consiga realizar o teste que nos dê um retorno.

    Abraço e muito obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 27/7/2011, 12:32

    Tente atualizar a versão utilizando a propriedade Version no lugar de colocar a versão diretamente:

    Application.Version


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 27/7/2011, 12:47

    Criquio, valeu pela resposta, porém, gostaria de mais uma dica, em que momento eu insiro este código?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 27/7/2011, 12:49

    Poste a função que está utilizando para copiar as referências. A que você mencionou mais acima.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 27/7/2011, 12:51

    Tá na mão.

    Function Referencias()
    Dim REF As Object
    Dim FS
    For Each REF In References 'Busca todas as referencias que utilizamos na BD
    Set FS = CreateObject("Scripting.FileSystemObject")
    FS.CopyFile REF.FullPath, CurrentProject.Path & "\" 'Copia desde a origem à Pasta da BD
    Next REF
    End Function
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 27/7/2011, 15:13

    Algumas referências tem diferenças de versão entre a versão de um Access para o outro. As referências que tem, no endereço, a pasta Office12 (Office 2007), por exemplo, pode ser alterada para Office14(Access2010), por exemplo.Para isso, podemos detectar o nome Office no endereço e mudar a versão para a versão apropriada. Algumas referências, no entanto, podem ter versões diferenciadas. Talvez fosse uma boa prática criar uma tabela de referências usadas pelo bd, incluindo a versão dela para cada versão do Access. Ao abrir o aplicativo, seria checada a versão do Access, mudando então para a que estiver cadastrada para essa versão do Access. Não podemos nos esquecer daquelas especiais, instaladas para satisfazerem certas necessidades, às quais precisam ser instaladas as suas respectivas dlls, ocx, etc.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 27/7/2011, 19:25

    Criquio,

    o problema que estou tendo aqui na empresa é apenas na referencia em relação ao excel, ou seja, o office em algumas máquinas está com a versão anterior ao do office que uso, pelo o que entendi das opçoes que vc postou anteriomente, é possível quando for distribuir o sistema nas máquinas e ao abrir o mesmo ele identificar a versão e habilitar a referencia respectiva?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 27/7/2011, 21:10

    Bom, se é só com o Excel a questão, então pode tentar o seguinte:

    Dim Ref As Reference
    Set Ref = References.AddFromFile("C:\Program Files\Microsoft Office\Office" & Left(Application.Version, Len(Application.Version) - 2) & "\Excel.exe")


    O caminho do Excel geralmente é o mesmo. Então, a parte em vermelho busca a versão do Access e usa ela para referenciar o Excel. Supondo que a versão seja 2007, apresentará 12.0. Como apenas o que vem antes do .0 faz parte do caminho, inserimos a instrução Left juntamente com Len - 2 para tirar os dois últimos dígitos da versão, ficando apenas 12. A mesma coisa se for o Access 2010, que é 14.0 e ficará apenas 14.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 28/7/2011, 10:04

    Bom dia Criquio,

    tentei implementar o código no form onde executo alguma rotina que inclua o excel e desmarquei a minha referência do excel, executei o código mas não rodou.
    Estou postando o código abaixo com a sua dica.

    Private Sub btnExportar_Click()

    Dim Ref As Reference
    Set Ref = References.AddFromFile("C:\Program Files\Microsoft Office\Office" & Left(Application.Version, Len(Application.Version) - 2) & "\Excel.exe")

    On Error Resume Next


    'By JPaulo ® Maximo Access
    'Fevereiro,04,2011


    Dim rsT As DAO.Recordset
    Dim cnt As Integer
    Dim appExcel As Excel.Application
    Dim wbk As Excel.Workbook
    Dim wks As Excel.Worksheet
    Dim rng As Excel.Range
    Dim strSQL As String
    Dim Filename As String

    'abre o recordset a partir da consulta
    strSQL = "SELECT M.QRPTab as QRP, M.QRPAntigo, G.Desc_Grupo as Commoditie, M.Denom as Denominação, M.DenomCom as Comercial, V.DataUltAtual as Data, F.Fonte as Fornecedor, V.Moeda ,V.UltValorMP as Valor FROM tblMaterial as M, tblValor as V, tblFornecedor as F, tblGrupoMaterial as G WHERE (G.Cod_Grupo = M.Cod_Grupo) And (F.Cod_fornec = V.Cod_Fornec) And (V.QRPTab = M.QRPTab) And (MonthName(Month(DataUltAtual)) = '" & txtMes & "') And (Year(DataUltAtual) = '" & txtAno & "') And (V.Validar = True) ORDER BY M.QRPTab"


    Set rsT = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)


    If (rsT.RecordCount > 0) Then
    cnt = 1
    Set appExcel = Excel.Application
    appExcel.Visible = True
    Set wbk = appExcel.Workbooks.Add
    Set wks = wbk.Worksheets(1)
    wks.Name = "TodosOsRegistros"
    Set rng = wks.Range("A2:I4001")
    wks.Cells(1, 1).Value = "A Exportar..."
    For Each fld In rsT.Fields
    wks.Cells(1, cnt).Value = fld.Name
    cnt = cnt 1
    Next fld
    Call rng.CopyFromRecordset(rsT, 4000, 52)
    Else
    MsgBox "NÃO FORAM ENCONTRADOS REGISTROS PARA ESTE PERÍODO.", vbInformation, "AVISO"
    rsT.Close
    Set rsT = Nothing
    Exit Sub
    End If

    'apaga as folhas (sheets) que estão a mais no livro excel
    For i = wbk.Worksheets.Count To 2 Step -1
    wbk.Worksheets(i).Delete
    Next

    wks.Columns(9).NumberFormat = "###.###,##"

    'salva com o excel com o nome: Exportado_DiaMesAnoHoraMinutosSegundos.xls e fecha
    Filename = "C:\Documents and Settings" & userNameVKP & "\Desktop\Exportado" & "_" & txtMes & "_" & txtAno & ".xls"
    wbk.SaveAs (Filename)
    wbk.Application.Quit
    Set wbk = Nothing
    rsT.Close
    Set rsT = Nothing
    MsgBox "EXPORTADO COM SUCESSO..." & Chr(13) & _
    "O ARQUIVO EXCEL SE ENCONTRA NA ÁREA DE TRABALHO.", vbInformation, "AVISO"

    End Sub



    O que destaquei em vermelho é onde está ocorrendo o erro, a mensagem que aparece é "O TIPO DEFINIDO PELO USUÁRIO NÃO FOI DEFINIDO".



    Só gostaria de salientar que este código com a referencia marcada funciona perfeitamente.



    Valeu.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 28/7/2011, 12:14

    Pode ser que talvez o caminho do Excel seja outro no computador de destino. Aí seria necessário mudar o caminho.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 28/7/2011, 12:42

    o caminho está perfeito, agora a minha dúvida é se da forma que testei está correto, será que no código original eu não tenha que eliminar nada?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  criquio 28/7/2011, 12:50

    Tente colocar esse antes para remover a referência atual do Excel:

    Dim DelRef As Reference

    For Each DelRef In Application.References
    If DelRef.Name = "Excel" Then
    References.Remove DelRef
    End If

    Next DelRef


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Edson1974
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 163
    Registrado : 10/05/2011

    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Edson1974 28/7/2011, 18:19

    Boa tarde Criquio,

    consegui fazer o que eu queria, porém o que fiz foi para a minha necessidade, ou seja, é simples mas acho que sendo adaptado poder de grande valia para outros.

    É o seguinte, usando parte do que vc me passou e pesquisando na net, na verdade já tem um bom tempo que estou tentando entender esse esquema de referências fiz o seguinte:

    No evento ao abrir do meu form principal

    Private Sub Form_Open(Cancel As Integer)
    Dim vVersao As String
    Dim vRefer As Reference
    Dim vNomesReferencias As String

    'Verifica a existência de referencias ausentes e/ou quebradas e se caso exista as exclui
    For Each vRefer In Application.References
    If vRefer.IsBroken = True Then
    References.Remove vRefer
    End If
    vNomesReferencias = vNomesReferencias & vRefer.Name
    Next vRefer

    'Verifica se já existe a referencia do excel
    If vNomesReferencias Like "*Excel*" Then
    Exit Sub

    Else
    'Caso não exista inseri a referencia do excel na versão 10.0 ou 11.0 que é o meu problema neste momento

    If vVersao = "10.0" Then
    Set vRefer = References.AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 4)
    Else
    If vVersao = "11.0" Then
    Set vRefer = References.AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 5)
    End If
    End If
    End If
    End Sub



    É lógico que se vc quiser fazer alguma modificação fique a vontade.

    O site em que li muito para entender um pouco foi o

    http://www.juliobattisti.com.br/artigos/office/adicionando_referencias.asp

    Os detalhes referentes a alguns comandos importantes para entender melhor o código como por exemplo, AddFromGuid, IsBroken, GUID, Major, Minor, etc, se encontram no site acima.



    Criquio, mais uma vez brigadão pelas idéias.

    Conteúdo patrocinado


    [Resolvido]Falta de Referência Empty Re: [Resolvido]Falta de Referência

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 03:15