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 de macro, codificação e interoperabilidade habilidades.
Este artigo mostra como escrever um procedimento que cria um arquivo Schema.ini com base em uma tabela existente no seu banco de dados.
Este artigo presume que você esteja familiarizado com Visual Basic for Applications e com a criação de aplicativos do Microsoft Access usando as ferramentas de programação fornecidas com o Microsoft Access. Para obter mais informações sobre o Visual Basic for Applications, consulte sua versão do manual "Criando aplicativos com o Microsoft Access".
No Microsoft Access 7.0 e Microsoft Access 97, você pode vincular ou abrir arquivos de texto delimitados e de comprimento fixo. Microsoft Access pode ler um arquivo de texto diretamente, ou ele pode usar um arquivo de informações denominado schema.ini para determinar as características do arquivo de texto, como nomes de coluna, tamanhos de campo e tipos de dados. Um arquivo Schema.ini é necessário quando você vincular ou abre arquivos de texto de comprimento fixo; ele é opcional para arquivos de texto delimitado. O arquivo Schema.ini deve residir na mesma pasta como os arquivos de texto que ele descreve.
O exemplo a seguir o procedimento 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á substituir um arquivo Schema.ini existente na mesma pasta de destino sem aviso.
Abra o banco de dados de exemplo Northwind.mdb.
Crie um módulo e digite a seguinte linha na seção Declarações caso ainda não estiver lá: Option Explicit
Digite 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
Para testar essa função, digite a seguinte linha na janela Verificação imediata e, em seguida, pressione ENTER:
Abra o arquivo Schema.ini criado com um editor de texto, como o bloco de notas ou WordPad. Observe que o arquivo contém as seguintes informações:
[EMP.TXT] ColNameHeader = True CharacterSet = ANSI Formato = TabDelimited Col1 = Número_inteiro CódigoDoFuncionário Col2 = 20 de largura de caracteres do sobrenome Col3 = 10 de largura de caracteres de nome Col4 = largura de caracteres do título 30 Col5 = TitleOfCourtesy caracteres largura 25 Col6 = DataDeNascimento data Col7 = HireDate data Col8 = largura de caracteres de endereço 60 Col9 = largura de caracteres de cidade 15 Col10 = região caracteres largura 15 Col11 = largura de caracteres de CEP 10 Col12 = largura de caracteres de país 15 Col13 = TelefoneResidencial caracteres largura 24 Col14 = largura de caracteres de extensão 4 Col15 = fotos OLE Col16 = LongChar anotações Col17 = Número_inteiro Supervisor
Para obter mais informações sobre o arquivo Schema.ini e as informações que ele contém, procure drivers de inicialização e Inicializando o driver de fonte de dados de texto usando o índice da Ajuda do Microsoft Access 97.
Para obter mais informações sobre o arquivo Schema.ini e sua relação com o Microsoft Access e o mecanismo de banco de dados Microsoft Jet, consulte o "guia do programador do Microsoft Jet Database Engine," páginas 306 312.
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: 155512
(http://support.microsoft.com/kb/155512/en-us/
)
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.