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.
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".
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.
Abra a base de dados exemplo Adamastor.mdb.
Crie um módulo e escreva a linha seguinte na secção Declarations, caso ainda não estiver escrito: Option Explicit
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
Para testar esta função, escreva a seguinte linha na janela de depuração e, em seguida, prima ENTER:
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
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.
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/
)
Exclusã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.
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.