Artigo: 155512 - Última revisão: sexta-feira, 19 de Janeiro de 2007 - Revisão: 3.3

ACC: Como criar um ficheiro Schema.ini através de programação

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Moderado: Requer básica macros, codificação e interoperabilidade competências.
Expandir tudo | Reduzir tudo

Sumário

Este artigo mostra como escrever um procedimento que cria um ficheiro Schema.ini baseado numa tabela existente na base de dados.

Este artigo pressupõe que está familiarizado com o Visual Basic for Applications e criação de aplicações do Microsoft Access utilizando as ferramentas de programação fornecidas com o Microsoft Access. Para mais informações sobre o Visual Basic for Applications, consulte a versão do manual "Criar aplicações com o Microsoft Access".

Mais Informação

No Microsoft Access 7.0 e Microsoft Access 97, pode ligar ou abrir ficheiros de texto delimitado e comprimento fixo. O Microsoft Access pode ler um ficheiro de texto directamente ou pode utilizar um ficheiro de informações denominado Schema.ini para determinar as características do ficheiro de texto, tais como nomes de colunas, comprimentos de campo e tipos de dados. Um ficheiro Schema.ini é necessário quando ligar ou abrir ficheiros de texto de comprimento fixo; é opcional para ficheiros de texto delimitado. O ficheiro Schema.ini deve residir na mesma pasta que os ficheiros de texto que descreve.

O procedimento no exemplo seguinte aceita quatro parâmetros:
     Parameter        Value
   ------------------------------------------------------------------------
   bIncFldNames     True/False, stating if the first row of the text file
                    has column names
   sPath            Full path to the folder where Schema.ini will reside
   sSectionName     Schema.ini section name; must be the same as the name
                    of the text file it describes
   sTblQryName      Name of the table or query for which you want to
                    create a Schema.ini file
				
Aviso: O procedimento neste exemplo irão substituir um ficheiro Schema.ini existente na mesma pasta destino sem aviso prévio.
  1. Abra a base de dados exemplo Adamastor.mdb.
  2. Crie um módulo e escreva a linha seguinte na secção Declarations, caso ainda não estiver escrito: Option Explicit
  3. Escreva o seguinte procedimento:
          Public Function CreateSchemaFile(bIncFldNames As Boolean, _
                                           sPath As String, _
                                           sSectionName As String, _
                                           sTblQryName As String) As Boolean
             Dim Msg As String ' For error handling.
             On Local Error GoTo CreateSchemaFile_Err
             Dim ws As Workspace, db As DATABASE
             Dim tblDef As TableDef, fldDef As Field
             Dim i As Integer, Handle As Integer
             Dim fldName As String, fldDataInfo As String
             ' -----------------------------------------------
             ' Set DAO objects.
             ' -----------------------------------------------
             Set db = CurrentDB()
             ' -----------------------------------------------
             ' Open schema file for append.
             ' -----------------------------------------------
             Handle = FreeFile
             Open sPath & "schema.ini" For Output Access Write As #Handle
             ' -----------------------------------------------
             ' Write schema header.
             ' -----------------------------------------------
             Print #Handle, "[" & sSectionName & "]"
             Print #Handle, "ColNameHeader = " & _
                             IIf(bIncFldNames, "True", "False")
             Print #Handle, "CharacterSet = ANSI"
             Print #Handle, "Format = TabDelimited"
             ' -----------------------------------------------
             ' Get data concerning schema file.
             ' -----------------------------------------------
             Set tblDef = db.TableDefs(sTblQryName)
             With tblDef
                For i = 0 To .Fields.Count - 1
                   Set fldDef = .Fields(i)
                   With fldDef
                      fldName = .Name
                      Select Case .Type
                         Case dbBoolean
                            fldDataInfo = "Bit"
                         Case dbByte
                            fldDataInfo = "Byte"
                         Case dbInteger
                            fldDataInfo = "Short"
                         Case dbLong
                            fldDataInfo = "Integer"
                         Case dbCurrency
                            fldDataInfo = "Currency"
                         Case dbSingle
                            fldDataInfo = "Single"
                         Case dbDouble
                            fldDataInfo = "Double"
                         Case dbDate
                            fldDataInfo = "Date"
                         Case dbText
                            fldDataInfo = "Char Width " & Format$(.Size)
                         Case dbLongBinary
                            fldDataInfo = "OLE"
                         Case dbMemo
                            fldDataInfo = "LongChar"
                         Case dbGUID
                            fldDataInfo = "Char Width 16"
                      End Select
                      Print #Handle, "Col" & Format$(i + 1) _
                                      & "=" & fldName & Space$(1) _
                                      & fldDataInfo
                   End With
                Next i
             End With
             MsgBox sPath & "SCHEMA.INI has been created."
             CreateSchemaFile = True
          CreateSchemaFile_End:
             Close Handle
             Exit Function
          CreateSchemaFile_Err:
             Msg = "Error #: " & Format$(Err.Number) & vbCrLf
             Msg = Msg & Err.Description
             MsgBox Msg
             Resume CreateSchemaFile_End
          End Function
    						
  4. Para testar esta função, escreva a seguinte linha na janela de depuração e, em seguida, prima ENTER:
    ? CreateSchemaFile(True,"c:\MSOffice\Access\","EMP.TXT","Employees")
  5. Abra o ficheiro Schema.ini criados com um editor de texto, como o bloco de notas ou do WordPad. Tenha em atenção que o ficheiro contém as seguintes informações:
    [EMP.TXT]
    ColNameHeader = TRUE
    CharacterSet = ANSI
    Formato = TabDelimited
    Col1 = NúmeroInteiro CódigoDoEmpregado
    Col2 = Apelido Char largura 20
    Col3 = largura de carácter do nome 10
    Col4 = título carácter largura 30
    Col5 = largura de carácter TitleOfCourtesy 25
    Col6 = data de data de nascimento
    Col7 = HireDate data
    Col8 = endereço char largura 60
    Col9 = largura de carácter cidade 15
    Col10 = região char largura 15
    Col11 = código postal carácter largura 10
    Col12 = largura de carácter país 15
    Col13 = largura de carácter TelefoneDoDomicílio 24
    Col14 = largura de carácter de extensão 4
    Col15 = fotografias OLE
    Col16 = LongChar notas
    Col17 = NúmeroInteiro superior

Referências

Para mais informações sobre o ficheiro Schema.ini e as informações nele, procure a inicializar controladores e, em seguida, ao inicializar o controlador de origem de dados de texto utilizando o índice remissivo ajuda do Microsoft Access 97.

Para mais informações sobre o ficheiro Schema.ini e respectiva relação com o Microsoft Access e o motor de base de dados do Microsoft Jet, consulte "Manual do programador do Microsoft Jet da base de dados motor," páginas 306 312.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming KB155512 KbMtpt
Tradução automáticaTradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 155512  (http://support.microsoft.com/kb/155512/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.