Ir para conteúdo
Fórum Script Brasil

Alexandre Neves

Membros
  • Total de itens

    168
  • Registro em

  • Última visita

Posts postados por Alexandre Neves

  1. Bom dia, Tiago

    Na tabela Clientes deve ter um campo CodCliente (Duplicação não autorizada) e na tabela Moradas deve ter um campo CodCliente (Duplicação autorizada). Para relacionar as tabelas, em SQL, utilize ... FROM tblClientes INNER JOIN Moradas ON tblClientes.CodCliente=Moradas.CodCliente ...

  2. Boa tarde, Bruno

    Não sei se esse caminho dará certo, no entanto, pode agregar constantes ou variáveis ao código SQL, como segue:

    1 - Se texto

    Onde pretende introduzir

    ... '"& NomeDoDado & "' ...

    2 - Se data

    Onde pretende introduzir

    ... #"& NomeDoDado & "# ...

    3 - Se número

    Onde pretende introduzir

    ... "& NomeDoDado & " ...

  3. Boa noite, extremejogos

    Nunca trabalhei com stoks (ainda não precisei) mas dizem que é preciso mesmo muito cuidado.

    O meu raciocínio é o seguinte:

    - Ao sair o produto não deve ser descontado na tabela de produtos. Porquê? Porque suponhamos que a tabela de produtos regista a entrada de produtos. Assim sendo, a determinada altura ficamos sem saber a quantidade de produtos entrada. Também porque a eventual eliminação de registo de saída do produto pode a actualização da tabela produtos não ficar perfeita.

    - Para bom funcionamento, criaria tabela EntradaProdutos (registo dos produtos entrados), tabela SaidaProdutos (registo dos produtos saídos) e tabela SaldoProdutos. A actualização da tabela SaldoProdutos, a partir das tabelas EntradaProdutos e SaidaProdutos seria feita através de uma função criada para o efeito.

  4. Bom dia, inffernus

    A última ajuda que lhe prestei ordena a listagem pelo nome da penitenciária em vez de listar pelo código da penitenciária, o que me parece mais intuitivo.

    Para a sua última dúvida:

    Em vez de

    CxcPavilhao.RowSource = "SELECT CodPavilhao," & CxcPenitenciaria.Column(1) & " FROM tblPavilhao ORDER BY " & CxcPenitenciaria.Column(1) & ";"

    Coloque

    CxcPavilhao.RowSource = "SELECT CodPavilhao," & CxcPenitenciaria.Column(1) & " FROM tblPavilhao WHERE Not IsNull(" & CxcPenitenciaria.Column(1) & ") ORDER BY " & CxcPenitenciaria.Column(1) & ";"

    Em vez de

    CxcCela.RowSource = "SELECT CodCela," & CxcPenitenciaria.Column(1) & " FROM tblCela ORDER BY " & CxcPenitenciaria.Column(1) & ";"

    Coloque

    CxcCela.RowSource = "SELECT CodCela," & CxcPenitenciaria.Column(1) & " FROM tblCela WHERE Not IsNull(" & CxcPenitenciaria.Column(1) & ") ORDER BY " & CxcPenitenciaria.Column(1) & ";"

  5. Boa tarde, Inffernus

    Onde está

    CxcPenitenciaria.RowSource = "SELECT CodPenitenciaria,Penitenciaria FROM tblPenitenciaria ORDER BY CodPenitenciaria;"

    Substitua por

    CxcPenitenciaria.RowSource = "SELECT CodPenitenciaria,Penitenciaria FROM tblPenitenciaria ORDER BY Penitenciaria;"

    O pavilhão e cela ficam ordenados como texto pois são campos texto.

  6. Bom dia, zero

    Suponho que queira que funcione em cada mês e não apenas no mês de Janeiro.

    Para tal, coloque no acontecimento AoSair do campo DataPagamento

    Select Case TxtMes
        Case "Janeiro"
            If Month(TxtDataPagamento) <> 1 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Fevereiro"
            If Month(TxtDataPagamento) <> 2 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Março"
            If Month(TxtDataPagamento) <> 3 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Abril"
            If Month(TxtDataPagamento) <> 4 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Maio"
            If Month(TxtDataPagamento) <> 5 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Junho"
            If Month(TxtDataPagamento) <> 6 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Julho"
            If Month(TxtDataPagamento) <> 7 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Agosto"
            If Month(TxtDataPagamento) <> 8 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Setembro"
            If Month(TxtDataPagamento) <> 9 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Outubro"
            If Month(TxtDataPagamento) <> 10 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Novembro"
            If Month(TxtDataPagamento) <> 11 Then TxtCoima = 5 Else TxtDataPagamento = Null
        Case "Dezembro"
            If Month(TxtDataPagamento) <> 12 Then TxtCoima = 5 Else TxtDataPagamento = Null
        End Select

  7. Boa tarde,

    Eu utilizo quase sempre as funções via código mas, no seu caso, será melhor, em vez de alterar todas as funções utilizadas, crie um módulo e chame-o de FunçoesConvertidas e crie funções de conversão tais como:

    Function Dia(dtData as date)as string
        Dia=Day(dtData)
    End Function
    
    Function Mes(dtData as date)as string
        Mes=Month(dtData)
    End Function
    
    Function Ano(dtData as date)as string
        Ano=Year(dtData)
    End Function

    Deste modo, se chamar pelo nome em inglês ele procura directo, se chamar pelo nome em português ele é direcciona-o para o nome em inglês.

  8. Boa tarde,

    Afinal tem 2 formulários ou 1 formulário e 1 sub-formulário?

    A ordem correcta será Formulários!Formulario1![ValorDespesa] em vez de Formulario1!Formularios![ValorDespesa] ?

    Não explicou como utilizou a função SeImed mas experimente IIf(isNull(Formulario1!ValorDespesa),Null,Formulario1!ValorDespesa)

    Bom trabalho,

  9. Boa noite, Felipe

    Pelos dados que forneceu, esta função deve funcionar

    Function ProcValor(dtData As Date) As Double

    ProcValor = DLookup(Year(dtData), "Tabela", "Meses=" & Month(dtData))

    End Function

    Bom trabalho,

  10. Boa noite, inffernus

    Estive sem computador mas não se esqueça que o assunto é do seu interesse e demorou 3 dias para informar o resultado. Não tem mal nenhum, ninguém lhe pediu que fosse rápido mas não desespere quando não podemos, ou não sabemos, ajudar!

    Sobre as últimas dúvidas:

    - Não sei o que quer dizer "apertar salvar"

    - Sobre os valores guardados, vá às propriedades das caixas de combinação e, na aba Dados, coloque 2 na coluna dependente.

  11. Bom dia, xiloba

    Copie estas funções e utilize a Media2Maiores

    Function Media2Maiores(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single
        'Função criada por Alexandre Neves
        'em 2009-06-27
        'para xiloba
        'do fórum scripbrasil
    
        If IsNull(Valor1) = True Then Valor1 = 0
        If IsNull(Valor2) = True Then Valor2 = 0
        If IsNull(Valor3) = True Then Valor3 = 0
        Select Case Maximo(Valor1, Valor2, Valor3)
        Case Valor1
            If Valor2 > Valor3 Then
            'caso de valor1>valor2>valor3
                Media2Maiores = (Valor1 + Valor2) / 2
            Else
            'caso de valor1>valor3>valor2
                Media2Maiores = (Valor1 + Valor3) / 2
            End If
        Case Valor2
            If Valor1 > Valor3 Then
            'caso de valor2>valor1>valor3
                Media2Maiores = (Valor2 + Valor1) / 2
            Else
            'caso de valor2>valor3>valor1
                Media2Maiores = (Valor2 + Valor3) / 2
            End If
        Case Valor3
            If Valor1 > Valor2 Then
            'caso de valor3>valor1>valor2
                Media2Maiores = (Valor3 + Valor1) / 2
            Else
            'caso de valor3>valor2>valor1
                Media2Maiores = (Valor3 + Valor2) / 2
            End If
        End Select
    End Function
    
    Function Maximo(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single
    'Função criada por Alexandre Neves
    'em 2009-06-27
    'para xiloba
    'do fórum scripbrasil
    
        If IsNull(Valor1) = True Then Valor1 = 0
        If IsNull(Valor2) = True Then Valor2 = 0
        If IsNull(Valor3) = True Then Valor3 = 0
        If Val(Valor3) = 0 Then
            If Val(Valor1) > Val(Valor2) Then
                Maximo = Valor1
            Else
                Maximo = Valor2
            End If
        Else
            Maximo = Maximo(Maximo(Valor1, Valor2), Valor3)
        End If
    End Function

    Bom trabalho

  12. Bom dia, jarcastro

    Existem limites que não conheço bem. Cada tabela só pode ter 255 campos e o texto SQL para trabalhar dados comporta o máximo de 2048 (?) caracteres. Para saber todos os limites procure no sítio da microsoft.

    Bom trabalho,

  13. Boa tarde, arldin

    Não percebi bem o que quer.

    Se quiser alterar a cor do campo quando selecciona na tabela, faça:

    - Ferramentas>>opções>>Folha de dados>>altera para a cor que pretende. A cor que seleccionar é a que enche o cursor quando o campo é seleccionado.

    Bom trabalho,

×
×
  • Criar Novo...