Ir para conteúdo
Fórum Script Brasil

Alexandre Neves

Membros
  • Total de itens

    168
  • Registro em

  • Última visita

Tudo que Alexandre Neves postou

  1. 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,
  2. 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.
  3. 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?
  4. Existe algum relacionamento entre os registos da tabela Novos1 e os registos da tabela Novos2? Se sim, qual?
  5. 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.
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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];
  11. 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.
  12. 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
  13. 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.
  14. Depure o código e veja em onde dá o erro.
  15. 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 &"');"
  16. 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"
  17. Em vez de Ab.SetFocus experimente DoCmd.CancelEvent
  18. Deve funcionar assim: INSERT INTO tblCentral(numGeral) SELECT numGeral FROM dadosTratamento WHERE numGeral NOT IN (SELECT numGeral FROM tblCentral;);
  19. Crie uma consulta em vista SQL do género: SELECT * FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.CodigoInterno=Tabela2.CodigoInterno;
  20. 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
  21. Para juntar as duas consultas, faça PrimeiraConsulta UNION SegundaConsulta desde que a quantidade de campos seja o mesmo nas duas consultas.
  22. Em vez de SELECT ..., utilize SELECT DISTINCT ... para não repetir dados da da consulta ou SELECT DISTINCTROW para repetir dados do registo
  23. Veja se lhe serve: http://forum.imasters.uol.com.br/index.php...o-csv-para-mdb/Veja:
  24. 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();
×
×
  • Criar Novo...