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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  criar campos
vander.com
INDAIATUBA
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 09:13 hs            
minha rotina ficou assim:
--------------------------------------------------------------------------
Dim db As Database
Dim td As TableDef
Dim fields(1) As Field
Set db = DBEngine.Workspaces(0).OpenDatabase("c:v-8 sistemasBanco de Dadosd_Administrador.mdb")
Set td = db.TableDefs("produto_falta")
Set fields(1) = td.CreateField("codigo", dbText, 6)
--------------------------------------------------------------------------
mas nao esta criando os campos.
 
outra coisa, e pra que eu possa criar uma tabela nova?
 
   
Maxcim
GUARULHOS
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 09:38 hs            
criar tabela usando sql:
create table tabela (
                                   id AutoIncrement Primary Key,
                                   campo_numero number,
                                   campo_texto text(50),
                                   Campo_date  date,
                                   Campo_memo longtext,
                                   campo_binary binary,
                                   campo_BIT BIT,
                                  Campo_Byte byte,
                                campo_currency currency,
                               campo_LONGTEXT LONGTEXT
)
 
ALTER TABLE tabela
 add  COLUMN campo_texto1  text(50);
ALTER TABLE tabela4
      ALTER COLUMN campo_texto1 TEXT(250);
 
ALTER TABLE tabela4 DROP COLUMN campo_texto1;
 
 
 
ou pelo modo catalogo.
 
Sub Altera_tabela()
' referencia : microsoft ADO ext
Dim cnn As ADODB.Connection
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim col As ADOX.Column
Dim DS$, Senha$
DS = "C:Banco de dadosBD2.mdb"
Senha = ""
Set cnn = New ADODB.Connection
With cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & DS & " ;Jet OLEDB:Database Password= " & Senha
.Open
End With
Set cat = New ADOX.Catalog
cat.ActiveConnection = cnn
Set tbl = cat.Tables("TBL_01")
tbl.Name = "TBL_outro nome da tabela"
Set col = tbl.Columns("campo_numero")
col.Name = "Campo_Numero2"
'col.Properties("Description") = "Uma descrição qualquer"
 
tbl.Columns.Append "nome_fantasia", ADOX.DataTypeEnum.adVarWChar, 50
tbl.Columns.Append "Slogan", ADOX.DataTypeEnum.adVarWChar, 50
tbl.Columns.Append "email", ADOX.DataTypeEnum.adVarWChar, 50
tbl.Columns.Append "Home", ADOX.DataTypeEnum.adVarWChar, 50
tbl.Columns.Append "Logo", ADOX.DataTypeEnum.adLongVarBinary

Set col = Nothing
Set tbl = Nothing
Set cat = Nothing
Set cnn = Nothing
End Sub
 
 
TÓPICO EDITADO
 
vander.com
INDAIATUBA
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 20:43 hs            
nao deu certo..... a maneira como o treze ensinou, é a que mais identificou comigo.. mas eu preciso agora criar as tabelas tambem
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 14/02/2008 11:18 hs            
Vamos lá colega como criar o banco de Dados Completo via código
 
vá em project//references e selecione MIcrosoft DAO 3.6 Object Library
              
obs: Se você for utilizar o access 97 faça referência a MIcrosoft DAO 3.51 Object Library o 3.6 para versão do access 2000/2003
         
agora vamos aos códigos
 
primeiro em um módulo
 
Global DB As Database
'
Global REG As Recordset
Global TB As TableDef
Global FD As Field
Global IX As Index

Public Sub CriaTabelas()
Set TB= DB.CreateTableDef("tabela") ' nome da "tabela" que deseja criar
Set FD= TB.CreateField("codigo", dbText): vz (0) ' cria o campo
' vz(0) quer dizer que o campo não pode ficar em branco
Set FD = TB.CreateField("nome", dbText): vz(1)
' o valor de vz sendo 1 então o campo poderá ficar em branco
' -----------------------------------------------------
' O código a seguir cria uma chave primária na  tabela
'
DB.TableDefs.Append TB
Set IX= TB.CreateIndex("idx")
Set FD= IX.CreateField("codigo") ' isto indica que o campo "codigo" sera a chave primaria
IX.Fields.Append FD
IX.Primary = True
TB.Indexes.Append IX
End Sub
 
' Agora iremos criar a função que permite ou não o campo ficar vazio
 
Function vz(opc As Integer)
If opc = 1 Then
FD.Required = True
FD.AllowZeroLength = True
End If
TB.Fields.Append FD
End Function
 
bom até aqui tudo bem
agora no seu form você vai fazer o seguinte:
 
' no evento load
dim NOMEBD as String
 
NOMEBD="C:nome do seu banco.mdb"
 
If Dir("NOMEBD") = "" Then
Set DB = Workspaces(0).CreateDatabase("NOMEBD", _
dbLangGeneral, dbversion36) ' aqui você deve fazer referência correta
CriaTabelas
Else
Set DB = Workspaces(0).OpenDatabase("NOMEBD")
Set REG= DB.OpenRecordset("tabela", dbOpenTable)
End If
e pronto está criado seu bd access
 
espero ter ajudado até
 
TÓPICO EDITADO
 
ADRIANO2605
CAMPO GRANDE
MS - BRASIL
Postada em 10/11/2008 12:43 hs            
Olá treze. kra utilizei o seu metodo e ficou legal, tive de fazer umas prevenções de erro mas tudo bem!
Eu preciso ver contigo uma coisa qdo utilizer o set field(3) as field para criar tres campos ele dava o erro 13 type mismatch, não entendi sendo que eu fiz as declarações como vc pedira.
Enfim tive de fazer algumas prevenções para ele funcionar legal, resumindo ficou assim o código.
 
bom mesmo assim muito obrigado pela  ajuda.
 
abraços a todos
 
Até mais!!!
 
Public Sub AlteraTabela()
On Error GoTo TRATAERRO
'na declaração:
    Dim db As Database
    Dim td As TableDef
   
    'exemplo da  função:
    'AQUI NO "fields(2)", 2 É A QUANTIDADE DE CAMPOS. - aqui ocorria o erro.
    
    'Dim fields(0 To 2) As Field
    Dim NomBanco, NomAgencia, NomConta, PrvErro As Field
    Set db = DBEngine.Workspaces(0).OpenDatabase(banco)
    'AQUI DIGA QUAL É A TABELA.
    Set td = db.TableDefs("usuario")
    'CRIA OS CAMPOS NA TABELA EXISTENTE SEM MUDAR OS DADOS QUE CONTEM .
        Set NomBanco = td.CreateField("BANCO", dbText, 100)
        Set NomAgencia = td.CreateField("AGENCIA", dbText, 20)
        Set NomConta = td.CreateField("CONTA", dbText, 20)
        Set PrvErro = td.CreateField("prv", dbText, 20) 'este campo aqui é só pra gerar um erro e parar a instrução
        td.fields.Append NomBanco
        td.fields.Append NomAgencia
        td.fields.Append NomConta
        td.fields.Append PrvErro
TRATAERRO:
Select Case Err.Number
Case Is = 0
Case Is = 13 'erro na crição do campo prv campo q não existe é só para parar a instrução
Resume Next
Case Is = 3420 'erro do append pra para a instrução
Exit Sub
Case Is = 3191 'campos ja criados ele para a instruação
Exit Sub
Case Else
MsgBox "INFORME O CÓDIGO " & Err.Number & " - " & Err.Description & " AO ADMINISTRADOR DO SISTEMA!", vbInformation, "ALTERAR BD"
Exit Sub
End Select
End Sub
     
Página(s): 2/2     « ANTERIOR  


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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