MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Tipo de Campo em criação de tabela via SQL

    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 18:32

    Amigos estou criando uma tabela em sql e preciso de informaçãoes quanto como escrecer os tipos de dados para o

    Campo Numero : Decimal
    Campo Anexo
    Campo Ole
    Campo Hiperlink

    *** Consigo criar todos os dados numericos.. mas o decimal não estou conseguindo criar por SQL...
    Se escrevo decimal ele não aceita,,ja os outros os escrevo assim:

    SINGLE;DOUBLE;INTEGER;LONG;BYTE;COUNTER;DECIMAL

    E o anexo, hiperlink e Ole, como escrever tabem?

    Grato pela ajuda
    avatar
    Convidad
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidad 22/7/2011, 19:28

    tire ideias desta função


    Function CriaTabela()
    On Error GoTo Trata_Erro

    Dim db As DAO.Database, NovaTbl As DAO.TableDef
    Dim I As Integer
    Dim fld(2) As DAO.Field 'Define uma matriz de 3 elementos.
    Dim idx As DAO.Index
    Dim myTabela As String
    Dim td As DAO.TableDef
    Dim fd As DAO.Field
    Dim prp As DAO.Property

    myTabela = "NovaTabela" 'Nome da tabela armazenado na caixa de texto

    DoCmd.Hourglass True 'Muda o ponteiro para ampulheta.
    Set db = CurrentDb
    Set NovaTbl = db.CreateTableDef(myTabela)

    With NovaTbl
    ' Vamos criar 3 campos.
    Set fld(0) = .CreateField("Cód_Cliente", dbLong)
    fld(0).Attributes = dbAutoIncrField 'Autonumeração.
    Set fld(1) = .CreateField("Nome_Cliente", dbText, 20)
    Set fld(2) = .CreateField("Senha", dbText, 5)

    'Adiciona os campos criados à tabela.
    For I = 0 To UBound(fld())
    .Fields.Append fld(I)
    .Fields.Refresh
    Next I

    'Cria índice Chave-Primária para o campo Cód_Cliente.
    'O nome do índice será PrimaryKey, mas poderia ser
    'qualquer nome.
    Set idx = .CreateIndex("PrimaryKey")
    With idx
    .Primary = True 'Torna o índice chave primária.
    .Fields.Append .CreateField("Cód_Cliente", dbLong)
    End With
    .Indexes.Append idx
    .Indexes.Refresh

    End With
    db.TableDefs.Append NovaTbl
    db.TableDefs.Refresh
    MsgBox "Tabela '" & NovaTbl.Name _
    & "' criada com sucesso!", vbInformation, "Status"

    'aqui inicia a colocação de inputmask para senha no campo senha
    Set td = db.TableDefs("NovaTabela")
    Set fd = td.Fields("Senha")
    Set prp = fd.CreateProperty
    prp.Name = "InputMask"
    prp.Type = dbText
    prp.Value = "Password"
    fd.Properties.Append prp
    fd.Properties.Refresh
    td.Fields.Refresh
    'liberta recursos do sistema 1
    Set prp = Nothing
    Set fd = Nothing
    Set td = Nothing
    db.Close
    Set db = Nothing
    Sair:
    DoCmd.Hourglass False
    'liberta recursos do sistema 2
    Set idx = Nothing: Erase fld()
    Set NovaTbl = Nothing
    Set db = Nothing
    Exit Function

    Trata_Erro:
    MsgBox "Erro nº " & Err & Err.Description, _
    vbCritical, "Erro"
    Resume Sair

    End Function
    avatar
    Convidad
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidad 22/7/2011, 19:32

    outro


    Dim ws As DAO.Workspace
    Dim db As DAO.Database
    Dim tblNewTable As DAO.TableDef
    Dim fldNewField As DAO.Field
    Dim idxNewIndex As DAO.index
    Dim fldIndexField As DAO.Field
    so the first thing to do is create a workspace then open the database you want to modify in the ws.

    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(strDatabase) ' strDatabase is the full path to the accdb or mdb


    next thing to do is create a table, in fact we will first create a tabledef, then create some fields in it then append the table to the tables collection (to make it permanent) Set tblNewTable = db.TableDefs(strTableName) ' you will need to declare tblNewTable As DAO.TableDef at the top of your procedure

    strFieldname = "ID"
    Set fldNewField = tblNewTable.CreateField(strFieldname, dbLong) ' let's create an autonumber first
    With fldNewField
    ' Appending dbAutoIncrField to Attributes
    ' tells Jet that it's an Autonumber field
    .Attributes = .Attributes Or dbAutoIncrField
    End With

    ' now a long integer but most others are the same
    strFieldname = "Long_Integer_Field"
    Set fldNewField = tblNewTable.CreateField(strFieldname, dbLong)
    ' or you can use dbInteger, dbSingle, dbDate, dbCurrency, dbBoolean, dbBinary dbMemo or, dbLongBinary (did I miss any?)

    ' after each field you need to append it to the table def
    tblNewTable.Fields.Append fldNewField

    ' text is a little different, you need to specify the length
    Set fldNewField = tblNewTable.CreateField(strFieldname, dbText, intFieldLength)

    tblNewTable.Fields.Append fldNewField

    ' once you've added all the fields then we need to append the table to the tables collection

    db.TableDefs.Append tblNewTable There's a table and all the fields now for the indexes - here are some samples ' PrimaryKey"
    Set idxNewIndex = tblNewTable.CreateIndex("PrimaryKey")
    Set fldIndexField = idxNewIndex.CreateField(strFieldname)
    idxNewIndex.Primary = True
    idxNewIndex.Fields.Append fldIndexField
    tblNewTable.Indexes.Append idxNewIndex
    ' Unique"
    Set idxNewIndex = tblNewTable.CreateIndex(strIndexName)
    Set fldIndexField = idxNewIndex.CreateField(strFieldname)
    idxNewIndex.Unique = True
    idxNewIndex.Fields.Append fldIndexField
    tblNewTable.Indexes.Append idxNewIndex
    ' NonUnique"
    Set idxNewIndex = tblNewTable.CreateIndex(strIndexName)
    Set fldIndexField = idxNewIndex.CreateField(strFieldname)
    idxNewIndex.Fields.Append fldIndexField
    tblNewTable.Indexes.Append idxNewIndex

    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 19:48

    Bem amigos neste tópico so me falta agora saber como criar o campo AAttachment, e Numero Decimal em SQL

    Se puderem me ajudar fico grato
    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 19:55

    Ola mario, obrigado pela ajuda mas os códigos acima não serviram... eu ja tentei como dbmemo e nada o Sql que estou usando é algo assim:


    Dim teste As Database
    Set teste = CreateDatabase( "C:\teste\teste.mdb", dbLangGeneral)

    SQL = "CREATE TABLE Autores "
    SQL = SQL & " (Codigo_ID LONG, Nome TEXT (40) , Nascimento DATETIME);"
    teste.Execute SQL
    teste.Close
    avatar
    Convidad
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidad 22/7/2011, 19:55

    dbInteger, dbAttachment, dbSingle, dbDecimal, dbDate, dbCurrency, dbBoolean, dbBinary dbMemo or, dbLongBinary

    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 19:56

    preciso saber como colcar um anexo na palavra em vermelho


    Dim teste As Database
    Set teste = CreateDatabase( "C:\teste\teste.mdb", dbLangGeneral)

    SQL = "CREATE TABLE Autores "
    SQL = SQL & " (Codigo_ID LONG, Nome TEXT (40) , Nascimento DATETIME);"
    teste.Execute SQL
    teste.Close
    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 19:58

    Nào dá amigão.. dá erro de definicao no tipo do campo..

    avatar
    Convidado
    Convidado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Convidado 22/7/2011, 20:09

    Estive pesquisando e os campos hiperlink e anexos não podem ser criados via DLL

    Seque materia interessante sobre definicao de tipos de campos

    http://allenbrowne.com/ser-49.html

    Saudações

    Conteúdo patrocinado


    [Resolvido]Tipo de Campo em criação de tabela via SQL Empty Re: [Resolvido]Tipo de Campo em criação de tabela via SQL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 09:25