Ir para conteúdo
Fórum Script Brasil

leitis

Membros
  • Total de itens

    17
  • Registro em

  • Última visita

Posts postados por leitis

  1. Ola pessoal, estou precisando de uma ajudinha com um problema relacionado e referencia a formulário que o seguinte:

    Tenho um Form principal desacoplado da base de dados e nesse form tenho cinco Subforms no formato (folha de dados) cada um acoplado em suas respectivas tabelas e cada uma com seu relacionamento devidamente configurado (um para muitos).

    Não quero fazer a entrada de dados diretamento no formulario principal, gostaria de faz isso abrindo formulários popup em modo janela restrita e para tal tenho dois botões NOVO e EDITAR . Para abrir um registro já existente para edição já consegui far direitinho, mas o problema esta na inclusão de um novo registro visto que tenho que carregar o form popup já com o (valor do campo [id_cliente] no controle [txt_id_cliente]).

    No formulário principal (não vinculado a dados) os subs estão vinculados hierarquicamente:

    SubForm1

    SubForm2

    Exemplo do SubForm2

    Vincular Campos Filhos: id_cliente

    Vincular Campos Mestres: [subForm1].Form![id_cliente]

    O SubForm1 é carregado assim: (SELECT tbl_clientes.id_cliente, tbl_clientes.nome_cliente

    FROM tbl_clientes;)

    O SubForm1 é carregado assim: (SELECT tbl_ordem_servico.id_ordem, tbl_ordem_servico.id_cliente

    FROM tbl_ordem_servico;)

    Preciso por o código no Load do popup e carregar no controle [txt_id_cliente] o valor do id_cliente existente na tabela tbl_clientes.

    Desde já agradeço pele ajuda possível.

  2. você pode criar um controle imagem no seu frm e explorar a propridade Picture atravez de uma condicional.

    Exemplo:

    If Me!EmUso = "ocupado" then

    Me!MayPicture.Picture = "c:\Windows\ocupado.bmp"

    Else

    Me!mayPicture.Picture = "c:\Windows\vago.bmp"

    End If

    Lembrando que neste exemplo estou considerando o campo EmUso como uma String "ocupado", mas você deve adapitar o código conforme sua necessidade.

  3. Na origem do registro:

    SELECT id_cliente, nome_cliente, endereco, cidade, cep, estado, telefone, celular

    FROM tbl_clientes

    ORDER BY nome_cliente;

    No Evento:

    Private Sub id_cliente_AfterUpdate()

    Me!cxNomeCliente = Me!id_cliente.Column(1)

    Me!cxEndereçoCliente = Me!id_cliente.Column(2)

    Me!cxCidade = Me!id_cliente.Column(3)

    Me!cxCep = Me!id_cliente.Column(4)

    Me!cxEstado = Me!id_cliente.Column(5)

    Me!cxTelefone = Me!id_cliente.Column(6)

    Me!cxCelular = Me!id_cliente.Column(7)

    End Sub

    Lembrando que id_cliente.Column(0) é o ID do cliente

  4. O que é um módulo?

    Um módulo é uma coleção de declarações e procedimentos do Visual Basic for Applications armazenados conjuntamente, formando uma unidade.

    Existem dois tipos básicos de módulos: módulos classe e módulos padrão. Cada procedimento em um módulo pode ser um procedimento Function ou um procedimento Sub.

    Módulos classe

    Módulos de formulário e de relatório são módulos classe que estão associados a um determinado objeto (formulário ou relatório). Os módulos de formulário e relatório freqüentemente contêm procedimentos de evento que são executados em resposta a eventos no formulário ou relatório.

    Quando você cria o primeiro procedimento de evento para um formulário ou relatório, o Access cria automaticamente um módulo de formulário ou relatório associado. São estes os módulos classe e ficam nos pastidores dos seu objetos, ou seja, para se ter acesso a estes módulos temos entrar no modo estrutura do seu objeto.

    Módulos padrão

    Os módulos padrão contêm procedimentos de uso geral que não estão associados a nenhum outro objeto e procedimentos utilizados com freqüência, que podem ser executados a partir de qualquer lugar do seu Aplicativo.

    Tudo o que esta em um módulo padrão pode ser utilizado em qualquer objeto (formulário ou relatório) do seu aplicativo. São aqueles modulos que estão na sessão módulos do access.

  5. Atravez de um procedimento tente explorar a propriedades ListCount, ListRows e ListIndex do objeto.

    leitis, vou estar fazendo os testes e retorno os resultados...

    vlw a força!

    exemplo:

    Dim msg As String

    If Me.seu_controle.ListCount > 12 Then

    Me.Undo

    msg = MsgBox("mamae estou aqui", vbInformation + vbYesNo, "Titulo")

    If msg = vbYes Then

    MsgBox "Vem almoçar filho", vbInformation + vbYesNo, "Titulo"

    End If

    Else

    MsgBox "joãozinho onde esta você?", vbInformation + vbYesNo, "Titulo"

    End If

  6. Desculpe a demora, é que estou muito aterefado ultimamente.

    No cabeçalho de seu módulo classe:

    Option Compare Database

    Option Explicit

    Private Wks As DAO.Workspace

    No evento open do form principal:

    Set Wks = DBEngine.Workspaces(0)

    Dim rst_sub As DAO.Recordset

    Dim SQL_sub As String

    SQL_sub = "SELECT * FROM tbl " & _

    "WHERE ((([tbl].[campo])="parametro"));"

    Set rst_sub = Wks.Databases(0).OpenRecordset(SQL_sub)

    Set Me.seu_sub_form.Form.Recordset = rst_sub

    espero ter ajudado.

  7. Sim, o site tem um banco de dados muito pequeno. Mas alguém sabe de algum site que use atualmente um banco em Access?

    Obrigada pelas respostas.

    O que quer dizer muito pequeno?

    Não entendi ainda seu problema.

    Que tipo de aplicação você quer rodar com esse banco.

  8. aeeee...

    galera, estou precisando controlar o valor de uma variável para fazer interações em formulários.

    Na verdade, tentei definir uma variável publica da seguinte maneira:

    Public variavel As tipo_variavel

    Porém, esta linha de código dá problema na hora que mando executar...

    tenho que colocar alguma coisa no cabeçalho do evento, fazer algum procedimento, a síntaxe está incorreta?

    Abraços,

    você esta publicando a variavel em que tipo de módulo?

  9. opa! mais uma outra vez:

    gostaria de enviar um parâmetro SQL para efetuar uma filtragem de registros num objeto subformulário no modo folha de dados!

    qual a propriedade do objeto subformulário que aceita esta característica???

    se puder, me envie um exemplo em texto por aqui adicionando um parâmetro sql qualquer à uma folha de dados!

    desde já, vlw a força!

    ABRAÇOS,

    Na propriedade origem do registro do sub form

    SELECT * FROM tbl

    WHERE ((([tbl].[campo])="parametro"));

    espero ter ajudado.

  10. AMIGOS, GOSTARIA DE SABER COMO PROCEDER EM ALGUNS CASOS:

    VOU ALTUALIZR UM BANCO DE DADOS E O CLIENTE ATUALIZAÇA ELE CONTANTEMENTE, QUERIA PEGAR UMA COPIA ATUALIZA-LO, CONFORME SEU PEDIDO DEPOIS QUANDO FOR ENTREGA-LO COPIAS AS TABELAS DELE PARA O ATUALIZADO.

    FIZ UM TESTE E PARECE QUE NÃO ACEITA SUBISTITUIR AS TABELAS DEVIDO AOS RELACIONAMENTOS.

    COMO DEVO PROCEDER NESSA OCASIÃO?????

    alguém sabe como posso fazer essa atualização, por favor !!!!!!srsrrsrsr

    Este procedimento deve ser feito via código DAO.

    Se você substituir uma tabela por outra causará inconsistencia de dados e terá problemas com relacionamentos e muitos outros que virão. Qualquer mudificação deve ser feito DAO visto que esta linguagem tem todos os objetos necessarios de acesso a dados.

    Mestre, como funciona esse codigo DAO ??? será que consigo usar???

    você tem que usar UPDATE:

    Exemplo dos métodos Update e CancelUpdate (VB)

    Este exemplo mostra o método Update junto com o método CancelUpdate.

    Public Sub UpdateX()

    Dim rstEmployees As ADODB.Recordset

    Dim strOldFirst As String

    Dim strOldLast As String

    Dim strMessage As String

    ' Abrir conjunto de registros com nomes da tabela Employees.

    strCnn = "Provider=sqloledb;" & _

    "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "

    Set rstEmployees = New ADODB.Recordset

    rstEmployees.CursorType = adOpenKeyset

    rstEmployees.LockType = adLockOptimistic

    rstEmployees.Open "SELECT fname, lname " & _

    "FROM Employees ORDER BY lname", strCnn, , , adCmdText

    ' Armazenar dados originais.

    strOldFirst = rstEmployees!fname

    strOldLast = rstEmployees!lname

    ' Alterar dados no buffer de edição.

    rstEmployees!fname = "Linda"

    rstEmployees!lname = "Kobara"

    ' Mostrar conteúdo do buffer e obter entrada do usuário.

    strMessage = "Edit in progress:" & vbCr & _

    " Original data = " & strOldFirst & " " & _

    strOldLast & vbCr & " Data in buffer = " & _

    rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _

    "Use Update to replace the original data with " & _

    "the buffered data in the Recordset?"

    If MsgBox(strMessage, vbYesNo) = vbYes Then

    rstEmployees.Update

    Else

    rstEmployees.CancelUpdate

    End If

    ' Mostrar os dados resultantes.

    MsgBox "Data in recordset = " & rstEmployees!fname & " " & _

    rstEmployees!lname

    ' Restaurar dados originais porque isso é uma demonstração.

    If Not (strOldFirst = rstEmployees!fname And _

    strOldLast = rstEmployees!lname) Then

    rstEmployees!fname = strOldFirst

    rstEmployees!lname = strOldLast

    rstEmployees.Update

    End If

    rstEmployees.Close

    End Sub

    Este exemplo mostra o método Update junto com o método AddNew.

    Public Sub UpdateX2()

    Dim cnn1 As ADODB.Connection

    Dim rstEmployees As ADODB.Recordset

    Dim strEmpID As String

    Dim strOldFirst As String

    Dim strOldLast As String

    Dim strMessage As String

    ' Abrir uma conexão.

    Set cnn1 = New ADODB.Connection

    strCnn = "Provider=sqloledb;" & _

    "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "

    cnn1.Open strCnn

    ' Abrir conjunto de registros com dados da tabela Employees.

    Set rstEmployees = New ADODB.Recordset

    rstEmployees.CursorType = adOpenKeyset

    rstEmployees.LockType = adLockOptimistic

    rstEmployees.Open "employee", cnn1, , , adCmdTable

    rstEmployees.AddNew

    strEmpID = "B-S55555M"

    rstEmployees!emp_id = strEmpID

    rstEmployees!fname = "Bill"

    rstEmployees!lname = "Sornsin"

    ' Mostrar conteúdo do buffer e obter entrada do usuário.

    strMessage = "AddNew in progress:" & vbCr & _

    "Data in buffer = " & rstEmployees!emp_id & ", " & _

    rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _

    "Use Update to save buffer to recordset?"

    If MsgBox(strMessage, vbYesNoCancel) = vbYes Then

    rstEmployees.Update

    ' Ir para o novo registro e mostrar os dados resultantes.

    MsgBox "Data in recordset = " & rstEmployees!emp_id & ", " & _

    rstEmployees!fname & " " & rstEmployees!lname

    Else

    rstEmployees.CancelUpdate

    MsgBox "No new record added."

    End If

    ' Excluir novos dados porque isso é uma demonstração.

    cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strEmpID & "'"

    rstEmployees.Close

    End Sub

    Não esqueça de usar transação

    Exemplo dos métodos BeginTrans, CommitTrans e Rollback

    Este exemplo altera o nome do cargo de todos os representantes de vendas na tabela Funcionários do banco de dados. Quando o método BeginTrans iniciar uma transação que isola todas as alterações feitas na tabela Funcionários, o método CommitTrans salvará as modificações. Observe que você pode usar o método Rollback para desfazer as alterações que salvou usando o método Update. Além disso, a transação principal é aninhada dentro de outra transação que automaticamente reverte todas as alterações feitas pelo usuário durante esse exemplo.

    Uma ou mais páginas da tabela permanecem protegidas enquanto o usuário decide se aceita ou não as alterações. Por esse motivo, esta técnica não é recomendada, sendo mostrada apenas como um exemplo.

    Sub BeginTransX()

    Dim strNome As String

    Dim strMensagem As String

    Dim wrkDefault As Workspace

    Dim dbsNorthwind As Database

    Dim rstFuncionários As Recordset

    ' Obter o Workspace padrão.

    Set wrkDefault = DBEngine.Workspaces(0)

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")

    Set rstFuncionários = _

    dbsNorthwind.OpenRecordset("Funcionários")

    ' Início da transação externa.

    wrkDefault.BeginTrans

    ' Início da transação principal.

    wrkDefault.BeginTrans

    With rstFuncionários

    ' Fazer o loop pelo conjunto de registros e

    ' perguntar se o usuário deseja alterar o cargo

    ' do funcionário especificado.

    Do Until .EOF

    If !Cargo = "Representante de vendas" Then

    strNome = !Sobrenome & ", " & !Nome

    strMessage = "Funcionário: " & strNome & vbCr & _

    "Alterar o cargo para Diretor de contas?"

    ' Altera o cargo do funcionário

    ' especificado.

    If MsgBox(strMessage, vbYesNo) = vbYes Then

    .Edit

    !Cargo = "Diretor de contas"

    .Update

    End If

    End If

    .MoveNext

    Loop

    ' Perguntar se o usuário aceita todas as

    ' alterações feitas acima.

    If MsgBox("Salvar todas as modificações?", vbYesNo) = vbYes Then

    wrkDefault.CommitTrans

    Else

    wrkDefault.Rollback

    End If

    ' Imprimir os dados atuais no conjunto de registros.

    .MoveFirst

    Do While Not .EOF

    Debug.Print !Sobrenome & ", " & !Nome & _

    " - " & !Cargo

    .MoveNext

    Loop

    ' Reverter todas as alterações feitas pelo

    ' usuário porque esta é uma demonstração.

    wrkDefault.Rollback

    .Close

    End With

    dbsNorthwind.Close

    End Sub

  11. AMIGOS, GOSTARIA DE SABER COMO PROCEDER EM ALGUNS CASOS:

    VOU ALTUALIZR UM BANCO DE DADOS E O CLIENTE ATUALIZAÇA ELE CONTANTEMENTE, QUERIA PEGAR UMA COPIA ATUALIZA-LO, CONFORME SEU PEDIDO DEPOIS QUANDO FOR ENTREGA-LO COPIAS AS TABELAS DELE PARA O ATUALIZADO.

    FIZ UM TESTE E PARECE QUE NÃO ACEITA SUBISTITUIR AS TABELAS DEVIDO AOS RELACIONAMENTOS.

    COMO DEVO PROCEDER NESSA OCASIÃO?????

    alguém sabe como posso fazer essa atualização, por favor !!!!!!srsrrsrsr

    Este procedimento deve ser feito via código DAO.

    Se você substituir uma tabela por outra causará inconsistencia de dados e terá problemas com relacionamentos e muitos outros que virão. Qualquer mudificação deve ser feito DAO visto que esta linguagem tem todos os objetos necessarios de acesso a dados.

×
×
  • Criar Novo...