Alexandre Neves
-
Total de itens
168 -
Registro em
-
Última visita
Posts postados por Alexandre Neves
-
-
Boa noite, NFAC
Recebi a sua mensagem privada só agora, pois só agora me liguei à internet.
As regras do fórum obrigam a tirar as dúvidas no fórum para que todos vejam e aprendam.
Pelo que percebi:
Existem 4 caixas de combinação: CxcDocente, CxcAno, CxcCurso e CxcDisciplina
(A tabela Ano utiliza um nome reservado do Access e devia mudar para, por ex., tblAno)
Todos os campos filtrados nas caixas de combinação são texto, à excepção de AnoLectivo que é número
No acontecimento Ao Entrar da CxcDocente coloque o seguinte código:
CxcDocente.RowSource="SELECT NomeDocente FROM Docentes ORDER BY NomeDocente;"
No acontecimento Ao Entrar da CxcAno coloque o seguinte código:
CxcAno.RowSource="SELECT AnoLectivo FROM Ano LEFT JOIN Docentes ON Ano.ID_Docentes=Docentes.ID_Docentes WHERE NomeDocente='" & CxcDocente & "' ORDER BY AnoLectivo;"
No acontecimento Ao Entrar da CxcCurso coloque o seguinte código:
CxcCurso.RowSource="SELECT Curso FROM (PlanoEstudos LEFT JOIN Ano ON PlanoEstudos.IDAno=Ano.ID) LEFT JOIN Docentes ON Ano.ID_Docentes=Docentes.ID_Docentes WHERE AnoLectivo=" & CxcAno & " and NomeDocente='" & CxcDocente & "' ORDER BY Curso;"
No acontecimento Ao Entrar da CxcDisciplina coloque o seguinte código:
CxcDisciplina.RowSource="SELECT NomeDisciplina FROM ((Disciplinas LEFT JOIN PlanoEstudos ON Disciplinas.IDCurso=PlanoEstudos.ID_Plano) LEFT JOIN Ano ON PlanoEstudos.IDAno=Ano.ID) LEFT JOIN Docentes ON Ano.ID_Docentes=Docentes.ID_Docentes WHERE Curso='" & CxcCurso &"' and AnoLectivo=" & CxcAno & " and NomeDocente='" & CxcDocente & "' ORDER BY NomeDisciplina;"
Boa sorte.
-
oU
=Format(Month(Now),"mmmm")
-
Bom dia, NFAC
Falta conhecer o relacionamento entre as tabelas:
- Como se relaciona a tabela AnoLectivo com a tabela PlanoCurso?
- Como se relaciona a tabela PlanoCurso com a tabela Disciplinas?
-
Existe algum relacionamento entre os registos da tabela Novos1 e os registos da tabela Novos2? Se sim, qual?
-
Tem forma de fazer em VBA. Não sei os nomes das tabelas/campos, senão ajudar-lhe-ia na construção co código.
-
Coloque:
Private Sub Caixa_de_combinação_Enter()
'criada por Alexandre Neves
'em 2010-04-24
'para Pedro Gaz
'do fórum ScriptBrasil
Dim I As Integer
For I = 0 To CurrentDb.TableDefs.Count - 1
Caixa_de_combinação.AddItem CurrentDb.TableDefs(I).Name
Next
End Sub
-
Crie uma tabela e nomeie-a como Numeracao2Campos (campo Sequencia1 (texto) e Sequencia 2 (texto)).
cole este código:
Sub CriaTabelaNumeracao()
'criada por Alexandre Neves
'em 2010-04-24
'para eu_nickctba
'do fórum ScriptBrasil
Dim I As Integer, intInicio1 As Integer, intInicio2 As Integer, intFim As Integer
intInicio1 = InputBox("Introduza o número inicial da sequência 1.")
intFim = InputBox("Introduza o número final da sequência 1.")
intInicio2 = InputBox("Introduza o número inicial da sequência 2.")
CurrentDb.Execute "DELETE * FROM Numeracao2Campos;"
For I = 0 To intFim - intInicio1
CurrentDb.Execute "INSERT INTO Numeracao2Campos(Sequencia1,Sequencia2) VALUES ('" & Format(intInicio1 + I, "000000") & "','" & Format(intInicio2 + I, "000000") & "');"
Next
End Sub
-
Utilize
Sub EliminaPasta(EnderecoCompleto As String)
'criada por Alexandre Neves
'em 2010-04-24
'para Carlos Higor vp
'do fórum ScriptBrasil
Dim fso
On Error GoTo NaoExistePasta
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder (EnderecoCompleto)
Set fso = Nothing
Exit Sub
NaoExistePasta:
MsgBox "A pasta" & vbCr & EnderecoCompleto & vbCr & "não existe."
Resume Next
End Sub
-
Não percebi quais as colunas, mas criei código considerando 3 colunas: serial, duplicidade e peças defeito
Se for mais alguma coluna, adapte
Private Sub CommandButton1_Click()
linha1 = 1
Do
If Cells(linha1, 2) = "Duplicado" Then
'procura o único
linha2 = 1
Do
If Cells(linha1, 1) = Cells(linha2, 1) And linha1 <> linha2 Then
Cells(linha1, 3) = Cells(linha1, 3) & " " & Cells(linha2, 3)
Cells(linha1, 2) = "Único"
Rows(linha2).Select
Selection.Delete Shift:=xlUp
Exit Do
End If
linha2 = linha2 + 1
Loop While Cells(linha2, 1) <> ""
End If
linha1 = linha1 + 1
Loop While Cells(linha1, 1) <> ""
End Sub
-
Tente assim:
1 - Crie uma função
Function Ordem(NDado) As Long
'criada por Alexandre Neves
'em 2010-01-16
'para Js.ane
'do fórum ScriptBrasil
If IsNull(NDado) Then
NOrdem = 0
Exit Function
End If
NOrdem = NOrdem + 1
Ordem = NOrdem
End Function
2 - Utilize o código SQL
SELECT Ordem(Produto) as Ranking, Produto, [total vendido] ... ORDER BY [Total vendido];
-
Deve funcionar assim:
Dim ctl As Control
For Each ctl In Form.Controls
If ctl.ControlType = acTextBox Then
If IsNull(ctl) Or Len(ctl) = 0 Then
MsgBox "Prencha o controle " & ctl.Name, _
vbExclamation, "Controle obrigatório"
Cancel = True 'Cancela o evento, impedindo a atualização.
End If
ElseIf ctl.ControlType = acComboBox Then
If IsNull(ctl) Or Len(ctl) = 0 Then
MsgBox "Prencha o controle " & ctl.Name, _
vbExclamation, "Controle obrigatório"
Cancel = True 'Cancela o evento, impedindo a atualização.
End If
End If
Next
Sai:
Set ctl = Nothing ' Libera memória.
-
Veja se é isto que pretende:
(Denomine as combos com nomes diferentes dos nomes dos campos)
Private Sub CmbLogradouro_Exit(Cancel As Integer)
'se as combos estiverem preenchidas
If Me.CmbSst <> "" And Not IsNull(CmbSst) And Me.CmbLogradouro <> "" And Not IsNull(CmbLogradouro) Then
CurrentDb.Execute "INSERT INTO Dados(sst,logradouro) VALUES ('" & Me.CmbSst & "','" & Me.CmbLogradouro & "');"
MsgBox "Registo adicionado com os seguintes valores:" & vbCr & vbCr & "sst: " & Me.CmbSst & vbCr & "Logradouro: " & Me.CmbLogradouro
Me.CmbSst = Null
Me.CmbLogradouro = Null
Else
MsgBox "Registo não adicionado."
End If
End Sub
-
O código não é mostrado na totalidade, de qualquer forma, atente ao seguinte:
- Se for caixa de combinação, coloque o índice da coluna, começando por 0. Exemplo cmbTal(0)
- Se o valor for texto coloque entre pelicas. Exemplo: 'xpto'
- Se o valor for número coloque simples. Exemplo: 1234
- Se o valor for data coloque entre cardinais. Exemplo: #DataExemplo#
Construa o seu código com estas orientações que lhe dará certo.
-
Depure o código e veja em onde dá o erro.
-
De facto, só agora percebi as suas dúvidas.
Para seleccionar apenas cidades do estado escolhido na outra combo, coloque ao sair da combo cmbEstados código para a combo cmbCidades filtre as cidades do estado da combo cmbEstados, do género "SELECT Cidade FROM tblCidades WHERE Estado='" & cmbEstados(0) & "' ORDER BY Cidade;" adaptado aos seus dados
Para gravar os dados noutra tabela, coloque ao sair do último controlo o código adequado, do género CurrentdDB.Execute "INSERT INTO SuaTabela(Estado,Cidade) VALUES ('" & cmbEstado & "'," & cmbCidade &"');"
-
Nas caixas de combinação coloque o campo que pretende como origem do controlo
No formulário coloque a tabela pretendida como origem dos registos
Se pretender que apenas sejam introduzidos dados coloque "Sim" na "Introdução de dados"
-
Em vez de Ab.SetFocus experimente DoCmd.CancelEvent
-
Deve funcionar assim:
INSERT INTO tblCentral(numGeral) SELECT numGeral FROM dadosTratamento WHERE numGeral NOT IN (SELECT numGeral FROM tblCentral;);
-
Crie uma consulta em vista SQL do género:
SELECT * FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.CodigoInterno=Tabela2.CodigoInterno;
-
Será assim:
Private Sub Comando2_Click()
Dim strSQL as string
If Lista0.ItemsSelected.Count = 0 Then
MsgBox "ESCOLHA PELO MENOS UM ITEM!"
Exit Sub
End If
strsql=""
Dim varItm As Variant
For Each varItm In Lista0.ItemsSelected
strsql = strsql & " or RazaoSocial=" & Lista0.ItemData(varItm)
Next varItm
'tira o 1º or
strsql=mid(strsql, 5,len(strsql)-4)
DoCmd.OpenReport "Relatorio", acViewNormal, strsql
End Sub
-
Para juntar as duas consultas, faça PrimeiraConsulta UNION SegundaConsulta desde que a quantidade de campos seja o mesmo nas duas consultas.
-
Em vez de SELECT ..., utilize SELECT DISTINCT ... para não repetir dados da da consulta ou SELECT DISTINCTROW para repetir dados do registo
-
-
O nome do campo deve começar por letra. Pode ser Consulta1, Consulta2, ...
Tente assim:
SELECT * FROM Marcacao WHERE Consulta1=Date() or Consulta2=Date() or Consulta3=Date() or Consulta4=Date() or Consulta5=Date() or Consulta6=Date() or Consulta7=Date() or Consulta6=Date();
(Resolvido) Relacionar 3 combobox?!?!?!?!
em Access
Postado
Bom dia, NFAC
Parece-me que pode adaptar facilmente para o que pretende.
De qualquer forma, se pretender carregar a bd pode-o fazer num sítio público.
Pode criar uma conta, por exemplo, em www.esnips.com que é gratuito e duradouro.
Cumprimentos,