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


2 participantes

    [Resolvido]Criar campo em formulário via VBA

    avatar
    madsonbraz
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 28/05/2010

    [Resolvido]Criar campo em formulário via VBA Empty [Resolvido]Criar campo em formulário via VBA

    Mensagem  madsonbraz 15/6/2011, 14:51

    Prezad@s,

    Estou precisando criar campos em um formulário via VBA. Explico:

    Tenho um formulário onde o usuário insere o resultado da prova de um determinado aluno, o que acontece é que os campos da prova muda de acordo com o curso. Seria fácil criar um formulário para cada prova. Pensei em criar um formulário continuo onde um campo seria no nome da sessão da prova e o outro a nota, mas teria que controlar o as sessões que já foram inseridas notas para não repetir. Porém achei que esse modelo poderia levar o usuário a erro, pois notas poderiam não ser lançadas ou lançadas em duplicidade, sem falar que a pessoa teria que clicar várias vezes, o que toma tempo do usuário.

    Criei então um formulário onde busca as sessões da prova em uma tabela e em seguida cria os campos no formulário usando o CreateControl, mas não consigo associar formulas extensas a Fonte do Controle(ControlSource) para informar se a pessoa passou ou perdeu nesta sessão.

    Alguém tem alguma outra idéia, ou sabe como acrescentar formula extensa ao ControlSource ao usar o CreateControl.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Criar campo em formulário via VBA Empty Re: [Resolvido]Criar campo em formulário via VBA

    Mensagem  criquio 15/6/2011, 15:44

    Olá Madson, seja bem vindo ao Máximo Access.
    Podeira por gentileza postar a função completa para nossa apreciação?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    madsonbraz
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 28/05/2010

    [Resolvido]Criar campo em formulário via VBA Empty Re: [Resolvido]Criar campo em formulário via VBA

    Mensagem  madsonbraz 15/6/2011, 20:00

    Private Sub cmdInserirCampos_Click()
    Me.FilhoDestino.SourceObject = ""
    Call DeletaControles
    If MsgBox("Create?", vbYesNo, "Create") = vbYes Then
    Call InserirCampos("frmTeste")
    End If
    Me.FilhoDestino.SourceObject = "frmTeste"
    End Sub


    Public Function DeletaControles()
    DoCmd.OpenForm "frmteste", acDesign, , , , acHidden
    Dim x As String
    Dim i As Integer
    Dim z As Integer
    Dim y As String
    Dim matrix() As String


    With Forms("frmteste")
    z = .Controls.Count
    For i = 0 To z - 1
    x = x & .Controls(i).Name & ";"
    Next i
    'If MsgBox(x, vbYesNo, "Controles") = vbYes Then
    matrix = Split(x, ";")
    If UBound(matrix) = 1 And matrix(0) = "cmd" Then
    Exit Function
    Else
    For i = 0 To UBound(matrix) - 1
    y = matrix(i)
    'MsgBox y
    If y <> "cmd" Then
    DeleteControl .Name, y
    End If
    Next i
    End If
    End With
    DoCmd.Close acForm, "frmteste", acSaveYes
    End Function

    Private Function InserirCampos(NomeForm As String)

    Dim intDataX As Integer, intDataY As Integer, intLabelX As Integer, intLabelY As Integer
    Dim ctlLabel As Control, ctlText As Control

    Dim a As Integer
    NomeForm = "frmteste"
    Dim rs As Recordset
    Dim db As Database
    Dim ctl As Control

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("select * from phy_seccaoprova where prv_curso_id=" & Me.Combinação70.Column(0) & " order by prv_secao")
    rs.MoveLast
    rs.MoveFirst


    DoCmd.OpenForm NomeForm, acDesign, , , , acHidden

    For a = 1 To rs.RecordCount
    intLabelY = intLabelY + 320
    intDataY = intDataY + 320
    With CreateControl(NomeForm, acTextBox, , , "", 3120, intDataY, 1000, 315)
    .Name = Replace(rs!prv_avalicao, " ", "")
    Set ctlLabel = CreateControl(NomeForm, acLabel, , "", rs!prv_avalicao, 283, intLabelY, 2670, 315)
    End With
    Dim u As String

    With CreateControl(NomeForm, acTextBox, , , "=seimed((([" & Replace(rs!prv_avalicao, " ", "") & "]/" & rs!prv_pontucaoMax & ")* 100) >= 80; " & Chr(34) & "APROVADO" & Chr(34) & "; seimed((([" & Replace(rs!prv_avalicao, " ", "") & "]/" & rs!prv_pontucaoMax & ")* 100) < 80; " & Chr(34) & "REPROVADOR" & Chr(34) & "; " & Chr(34) & Chr(34) & "))", 3120 + 1100, intDataY, 1000, 315)

    With CreateControl(NomeForm, acTextBox, , , "=format(" & rs!prv_pontucaoMax & "*2;'0000')", 3120 + 1100, intDataY, 1000, 315)
    .Name = "rst" & Replace(rs!prv_avalicao, " ", "")
    End With
    rs.MoveNext
    Next a

    DoCmd.Close acForm, NomeForm, acSaveYes


    rs.MoveFirst


    End Function

    Conteúdo patrocinado


    [Resolvido]Criar campo em formulário via VBA Empty Re: [Resolvido]Criar campo em formulário via VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 10:32