|
Postada em 02/06/2004 17:04 hs
Alguem tem um exemplo de como criar uma tabela pelo VB no Access onde ela tenha uma chave primária composta ? ou seja uma chave dupla. Nos exemplos que eu achei na net, só encontrei com chave simples. grato.
|
|
|
|
|
Postada em 02/06/2004 17:14 hs
sSql = "CREATE TABLE Tab_Aliquota (De Char(2) Not Null, Para Char(2) Not Null, Aliquota Float Null, DataHora SmallDateTime Null)" cn.Execute (sSql) sSql = "ALTER TABLE Tab_Aliquota Add Primary Key (Para, De)" cn.Execute (sSql) ou "CREATE TABLE Tab_Aliquota (De VarChar(2) Not Null, Para VarChar(2) Not Null, Aliquota Float Null, DataHora SmallDateTime Null, CONSTRAINT PK_Tab_Aliquota Primary Key ([Para], [De]))" cn.Execute (sSql)
________________________ Té + Que NIMB role bons Dados! 
|
|
|
|
Postada em 02/06/2004 17:26 hs
Oi, esse código não é para Access né ?
|
|
|
|
Postada em 02/06/2004 17:34 hs
Esse código é para Criar uma Tabela (Tab_Aliquota) num banco de dados (seja ele ACCESS ou SQL Server). O SQL é uma linguagem padronizada que funciona para, se não todas, a maioria dos Bancos de Dados Existentes. É so vc criar uma Conexao com o Banco ACCESS e executar as Instruções que te Passei, Modificando aonde for Necessario. Só a Titulo de Curiosidade: Comando Sql - ACCESS -------------------------- Char ou Varchar = Texto Float = Numerico [Small]DateTime = Data/Hora Text = Memorando
________________________ Té + Que NIMB role bons Dados! 
|
|
|
orlandomb
|
PORTO ALEGRE RS - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 02/06/2004 17:44 hs
legal, já testei funciona perfeitamente. Só uma dúvida que não entendi, se eu criar pelo access lá tem a propriedade "permitir comprimento zero" para campos texto, no código vc que informou eu adicionei um campo "teste Char(10) Null," coloquei o null mas ele cria a o campo com a opção not null ou seja "permitir comprimento zero = nao" vc sabe como eu posso alterar as propriedades do campo via access ? grato
|
|
|
|
Postada em 02/06/2004 18:07 hs
Olá, Esse é o código que eu tava tentando usar, no original não tinha o CodAux, nesse código eu to tentando criar uma chave junto com o campo Código, mas não achei uma opçao que funcionasse. Tb neste método eu posso alterar as propriedades definindo por exemplo "permitir comprimento zero" para campos texto.
cria banco
If Dir$(App.Path & "Banco.MDB", vbArchive) = "" Then Dim WRK As dao.Workspace Dim DB As dao.Database Set WRK = DBEngine.Workspaces(0) 'Cria o banco de dados: Set DB = WRK.CreateDatabase(App.Path & "Banco.MDB", dbLangGeneral) 'Feche o banco de dados e o Workspace: DB.Close WRK.Close Set DB = Nothing Set WRK = Nothing End If Public Sub CriaCampos()
Dim WRK As dao.Workspace Dim DB As dao.Database Dim TB As New dao.TableDef Dim Campo1 As New dao.Field Dim Campo2 As New dao.Field Dim Campo3 As New dao.Field Dim Campo4 As New dao.Field Set WRK = DBEngine.Workspaces(0) 'Abre o banco de dados: Set DB = WRK.OpenDatabase(App.Path & "Banco.MDB") 'Atribui nome e utras propriedades à tabela 'e aos campos: TB.Name = "Tabela" Campo1.Name = "Código" Campo1.Type = dbInteger Campo2.Name = "CódigoAux" Campo2.Type = dbInteger Campo3.Name = "Nome" Campo3.Type = dbText Campo3.Size = 60 Campo3.AllowZeroLength = True Campo4.Name = "DataNasc" Campo4.Type = dbDate 'Cria os campos na tabela TB.Fields.Append Campo1 TB.Fields.Append Campo2 TB.Fields.Append Campo3 TB.Fields.Append Campo4 'Cria a tabela: DB.TableDefs.Append TB 'Feche o banco de dados, a tabela e o Workspace: 'TB.Close DB.Close WRK.Close Set TB = Nothing Set DB = Nothing Set WRK = Nothing End Sub Public Sub CriaIndex()
Dim WRK As dao.Workspace Dim DB As dao.Database Dim TB As New dao.TableDef Dim Index1 As New dao.Index Dim Index2 As New dao.Index Dim Index3 As New dao.Index Set WRK = DBEngine.Workspaces(0) 'Abre o banco de dados e a tabela: Set DB = WRK.OpenDatabase(App.Path & "Banco.MDB") 'Set TB = DB.OpenTable("Tabela") Set TB = DB.TableDefs("Tabela") 'Atribui nome e utras propriedades aos 'índices: Index1.Name = "Cód" Index1.Fields = "Código" Index1.Unique = False Index1.Primary = True Index2.Name = "CódAux" Index2.Fields = "CódigoAux" Index2.Unique = False Index2.Primary = True Index3.Name = "Nom" Index3.Fields = "Nome" Index3.Unique = False Index3.Primary = False 'Cria os indices na tabela: TB.Indexes.Append Index1 TB.Indexes.Append Index2 TB.Indexes.Append Index3 'DB. 'Feche o banco de dados, a tabela e o Workspace: 'TB.Close DB.Close WRK.Close Set TB = Nothing Set DB = Nothing Set WRK = Nothing End Sub
|
|
|