USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  criar tabela com chave composta ??
orlandomb
PORTO ALEGRE
RS - BRASIL
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.
     
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
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! Emoções

     
orlandomb
PORTO ALEGRE
RS - BRASIL
Postada em 02/06/2004 17:26 hs         
Oi, esse código não é para Access né ?
     
Waldirjr
POÇOS DE CALDAS
MG - BRASIL
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! Emoções

     
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
   
orlandomb
PORTO ALEGRE
RS - BRASIL
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
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página