Código de exemplo para importar todos os objetos de banco de dados no Access

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 298174
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Observação : O código de exemplo neste artigo usa o Microsoft Data Access Objects. Para que este código seja executado corretamente, você deve fazer referência a Microsoft DAO 3.6 Object Library. Para fazer isso, clique em referências no menu Ferramentas no Editor do Visual Basic e veja que a caixa de seleção Microsoft DAO 3.6 Object Library está selecionada.

Sumário
Este artigo descreve como você pode usar o Data Access Objects (DAO) para importar todos os objetos de um banco de dados para o banco de dados do Access atual. Em algumas situações, esse código pode ser usado para recuperar objetos de banco de dados de um banco de dados corrompido ou danificado que pode ser aberto, mas não pode ser compactado com êxito. Esse código não importa os seguintes elementos:
  • Referências
  • Especificações de importação/exportação
  • Informações de segurança (permissões de usuário e de grupo)
O usuário atual (normalmente o administrador) torna-se o proprietário de todos os objetos importados.
Mais Informações
Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104

Comunicado de Microsoft Services - http://support.microsoft.com/gp/advisoryservice

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSPara importar todos os objetos de outro banco de dados para o banco de dados atual, execute essas etapas:
  1. Inicie o Access e em seguida, abra o banco de dados onde você deseja importar objetos.

    Isso pode ser um novo banco de dados em branco.
  2. Na janela banco de dados, clique em módulos e em seguida, clique em novo .
  3. No menu Ferramentas , clique em referências . Certifique-se de que Microsoft DAO 3.6 Object Library ou posterior está selecionado na lista de referências. Também verifique se a opção qualquer referência ao Microsoft ActiveX Data Objects não está selecionada. Clique em OK .
  4. Digite ou cole o código a seguir na janela do módulo:
    Option Compare DatabaseOption ExplicitPublic Function ImportDb(strPath As String) As BooleanOn Error Resume NextDim db As Database 'Database to importDim td As TableDef 'Tabledefs in dbDim strTDef As String 'Name of table or query to importDim qd As QueryDef 'Querydefs in dbDim doc As Document 'Documents in dbDim strCntName As String 'Document container nameDim x As Integer 'For loopingDim cntContainer As Container 'Containers in dbDim strDocName As String 'Name of documentDim intConst As IntegerDim cdb As Database 'Current DatabaseDim rel As Relation 'Relation to copyDim nrel As Relation 'Relation to createDim strRName As String 'Copied relation's nameDim strTName As String 'Relation Table nameDim strFTName As String 'Relation Foreign Table nameDim varAtt As Variant 'Attributes of relationDim fld As Field 'Field(s) in relation to copyDim strFName As String 'Name of field to appendDim strFFName As String 'Foreign name of field to append'Open database which contains objects to import.Set db = DBEngine.Workspaces(0).OpenDatabase(strPath, True)'Import tables from specified Access database.For Each td In db.TableDefsstrTDef = td.NameIf Left(strTDef, 4) <> "MSys" ThenDoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, _strTDef, strTDef, FalseEnd IfNext'Import queries.For Each qd In db.QueryDefsstrTDef = qd.NameDoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acQuery, _strTDef, strTDef, FalseNext'Copy relationships to current database.Set cdb = CurrentDbFor Each rel In db.RelationsWith rel'Get properties of relation to copy.strRName = .NamestrTName = .TablestrFTName = .ForeignTablevarAtt = .Attributes'Create relation in current db with same properties.Set nrel = cdb.CreateRelation(strRName, strTName, strFTName, varAtt)For Each fld In .FieldsstrFName = fld.NamestrFFName = fld.ForeignNamenrel.Fields.Append nrel.CreateField(strFName)nrel.Fields(strFName).ForeignName = strFFNameNextcdb.Relations.Append nrelEnd WithNext'Loop through containers and import all documents.For x = 1 To 4Select Case xCase 1strCntName = "Forms"intConst = acFormCase 2strCntName = "Reports"intConst = acReportCase 3strCntName = "Scripts"intConst = acMacroCase 4strCntName = "Modules"intConst = acModuleEnd SelectSet cntContainer = db.Containers(strCntName)For Each doc In cntContainer.DocumentsstrDocName = doc.NameDoCmd.TransferDatabase acImport, "Microsoft Access", strPath, intConst, _strDocName, strDocName'Debug.Print strDocName'for debugging, will list document names in debug window.Next docNext x'Clean up variables to recover memory.Set fld = NothingSet nrel = NothingSet rel = NothingSet cdb = NothingSet td = NothingSet qd = NothingSet cntContainer = Nothingdb.CloseSet db = NothingImportDb = TrueEnd Function					
  5. No menu Exibir , clique em Janela imediata .
  6. Na janela Immediate, digite a seguinte linha de comando e pressione ENTER:
    ? ImportDb ("C:\ pathname \ MySourceDatabase .mdb")
    Observação Substitua o nome correto de caminho e arquivo para o banco de dados de origem. Este código retorna "True" (ou -1) se ela for executada com êxito.
inf ACC2000

Propriedades

ID do Artigo: 298174 - Última Revisão: 12/06/2015 02:35:14 - Revisão: 3.7

Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbinfo KB298174 KbMtpt
Comentários