MrMALJ
Moderadores-
Total de itens
2.152 -
Registro em
-
Última visita
Tudo que MrMALJ postou
-
Bom supondo que você tenha um campo chave primária, basta fazer uma consulta e utilizar como criterio deste campo o campo chave do form, daí então utilize esta consulta como origem de dados do seu relatório.
-
Você pode tentar utilizar caracteres coringas/globais, para implementar essa sua apesar eu não ter tentado utiliza-los com essa forma de busca, mais deve funcionar.
-
Crie um módulo com esse código Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Boolean Type MSA_OPENFILENAME ' Seqüência de filtro usada para os filtros do diálogo Abrir. ' Usa MSA_CriarSeqüênciaDeFiltro() para criar isso. ' Padrão = Todos os Arquivos, *.* strFiltro As String ' Filtro inicial a exibir. ' Padrão = 1 lngÍndiceFiltro As Long ' Diretório inicial no qual abrir o diálogo. ' Padrão = Diretório de trabalho atual. strDirInicial As String ' Nome de arquivo inicial com o qual preencher o diálogo. ' Padrão = "". strArqInicial As String strTítuloDoDiálogo As String ' Extensão padrão para anexar ao arquivo se o usuário não especificar uma. ' Padrão = Valores do Sistema (Abrir Arquivo, Salvar Arquivo). strExtensãoPadrão As String ' Sinalizadores (consulte a lista de constantes) a serem usados. ' Padrão = sem sinalizadores. lngSinalizadores As Long ' Caminho completo do arquivo escolhido. Quando a caixa de diálogo Arquivo ' Abrir é apresentada e o usuário escolhe um arquivo não existente, somente ' o texto da caixa "Nome do arquivo" é retornado. strCaminhoCompletoRetornado As String ' Nome do arquivo escolhido. strNomeDeArquivoRetornado As String ' Deslocamento no caminho completo (strCaminhoCompletoRetornado) ' onde o nome do arquivo (strNomeDeArquivoRetornado) começa. intDeslocamentoDoArquivo As Integer ' Deslocamento no caminho completo (strCaminhoCompletoRetornado) ' onde começa a extensão do arquivo. intExtensãoDoArquivo As Integer End Type Const ALLFILES = "Todos os arquivos" Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As Long nMaxCustrFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustrData As Long lpfnHook As Long lpTemplateName As Long End Type Const OFN_ALLOWMULTISELECT = &H200 Const OFN_CREATEPROMPT = &H2000 Const OFN_EXPLORER = &H80000 Const OFN_FILEMUSTEXIST = &H1000 Const OFN_HIDEREADONLY = &H4 Const OFN_NOCHANGEDIR = &H8 Const OFN_NODEREFERENCELINKS = &H100000 Const OFN_NONETWORKBUTTON = &H20000 Const OFN_NOREADONLYRETURN = &H8000 Const OFN_NOVALIDATE = &H100 Const OFN_OVERWRITEPROMPT = &H2 Const OFN_PATHMUSTEXIST = &H800 Const OFN_READONLY = &H1 Const OFN_SHOWHELP = &H10 Function localizarArquivo(strCaminhoDeLocalização) As String ' Exibe a caixa de diálogo Abrir para que o usuário localize o ' banco de dados BdLab. Retorna o caminho completo para o BdLab. Dim msaof As MSA_OPENFILENAME ' Define opções para a caixa de diálogo. msaof.strTítuloDoDiálogo = "Selecione o arquivo." msaof.strDirInicial = strCaminhoDeLocalização msaof.strFiltro = MSA_CriarSeqüênciaDeFiltro("Todos", "*.*") ' Chama a rotina do diálogo Abrir. MSA_ObterAbrirNomeArq msaof ' Retorna o caminho e o nome de arquivo. localizarArquivo = Trim(msaof.strCaminhoCompletoRetornado) End Function Function MSA_CriarSeqüênciaDeFiltro(ParamArray varFilt() As Variant) As String ' Cria uma seqüência de filtro a partir dos argumentos passados. ' Retorna "" se nenhum argumento for passado. ' Espera um número par de argumentos (nome do filtro, extensão), ' mas se um número ímpar de argumentos for passado, anexa *.* Dim strFiltro As String Dim intRet As Integer Dim intNúm As Integer intNúm = UBound(varFilt) If (intNúm <> -1) Then For intRet = 0 To intNúm strFiltro = strFiltro & varFilt(intRet) & vbNullChar Next If intNúm Mod 2 = 0 Then strFiltro = strFiltro & "*.*" & vbNullChar End If strFiltro = strFiltro & vbNullChar Else strFiltro = "" End If MSA_CriarSeqüênciaDeFiltro = strFiltro End Function Function MSA_ConverterSeqüênciaDeFiltro(strFiltroEnt As String) As String ' Cria uma seqüência de filtro a partir de uma seqüência separada por barras ("|"). ' A seqüência deve consistir em pares filtro|extensão, como "Access Databases|*.mdb|All Files|*.*" ' Se não houver extensões para o último par de filtro, *.* será adicionado. ' Este código ignora quaisquer seqüências vazias, ou seja, pares "||". ' Retorna "" quando a seqüência passada está vazia. Dim strFiltro As String Dim intNúm As Integer, intPos As Integer, intÚltPos As Integer strFiltro = "" intNúm = 0 intPos = 1 intÚltPos = 1 ' Adiciona seqüências enquanto encontra barras. ' Ignora quaisquer seqüências vazias (não admitidas). Do intPos = InStr(intÚltPos, strFiltroEnt, "|") If (intPos > intÚltPos) Then strFiltro = strFiltro & Mid(strFiltroEnt, intÚltPos, intPos - intÚltPos) & vbNullChar intNúm = intNúm + 1 intÚltPos = intPos + 1 ElseIf (intPos = intÚltPos) Then intÚltPos = intPos + 1 End If Loop Until (intPos = 0) ' Obtém a última seqüência se ela existir (assumindo ' que strFiltroEnt não termina em barra). intPos = Len(strFiltroEnt) If (intPos >= intÚltPos) Then strFiltro = strFiltro & Mid(strFiltroEnt, intÚltPos, intPos - intÚltPos + 1) & vbNullChar intNúm = intNúm + 1 End If ' Adiciona *.* se não houver extensão para a última seqüência. If intNúm Mod 2 = 1 Then strFiltro = strFiltro & "*.*" & vbNullChar End If ' Adiciona NULL de terminação se temos algum filtro. If strFiltro <> "" Then strFiltro = strFiltro & vbNullChar End If MSA_ConverterSeqüênciaDeFiltro = strFiltro End Function Private Function MSA_ObterSalvarNomeArq(msaof As MSA_OPENFILENAME) As Integer ' Abre o diálogo de salvar arquivo. Dim of As OPENFILENAME Dim intRet As Integer MSAOF_para_OF msaof, of of.flags = of.flags Or OFN_HIDEREADONLY intRet = GetSaveFileName(of) If intRet Then OF_para_MSAOF of, msaof End If MSA_ObterSalvarNomeArq = intRet End Function Function MSA_SimplesObterSalvarNomeArq() As String ' Abre o diálogo de salvar arquivo com valores padrões. Dim msaof As MSA_OPENFILENAME Dim intRet As Integer Dim strRet As String intRet = MSA_ObterSalvarNomeArq(msaof) If intRet Then strRet = msaof.strCaminhoCompletoRetornado End If MSA_SimplesObterSalvarNomeArq = strRet End Function Private Function MSA_ObterAbrirNomeArq(msaof As MSA_OPENFILENAME) As Integer ' Abre o diálogo Abrir. Dim of As OPENFILENAME Dim intRet As Integer MSAOF_para_OF msaof, of intRet = GetOpenFileName(of) If intRet Then OF_para_MSAOF of, msaof End If MSA_ObterAbrirNomeArq = intRet End Function Function MSA_SimplesObterAbrirNomeArq() As String ' Abre o diálogo Abrir com valores padrões. Dim msaof As MSA_OPENFILENAME Dim intRet As Integer Dim strRet As String intRet = MSA_ObterAbrirNomeArq(msaof) If intRet Then strRet = msaof.strCaminhoCompletoRetornado End If MSA_SimplesObterAbrirNomeArq = strRet End Function Private Sub OF_para_MSAOF(of As OPENFILENAME, msaof As MSA_OPENFILENAME) ' Esta sub converte da estrutura Win32 para a estrutura do Microsoft Access. msaof.strCaminhoCompletoRetornado = Left(of.lpstrFile, InStr(of.lpstrFile, vbNullChar) - 1) msaof.strNomeDeArquivoRetornado = of.lpstrFileTitle msaof.intDeslocamentoDoArquivo = of.nFileOffset msaof.intExtensãoDoArquivo = of.nFileExtension End Sub Private Sub MSAOF_para_OF(msaof As MSA_OPENFILENAME, of As OPENFILENAME) ' Esta sub converte da estrutura do Microsoft Access para a estrutura Win32. Dim strArquivo As String * 512 ' Inicializa algumas partes da estrutura. of.hwndOwner = Application.hWndAccessApp of.hInstance = 0 of.lpstrCustomFilter = 0 of.nMaxCustrFilter = 0 of.lpfnHook = 0 of.lpTemplateName = 0 of.lCustrData = 0 If msaof.strFiltro = "" Then of.lpstrFilter = MSA_CriarSeqüênciaDeFiltro(ALLFILES) Else of.lpstrFilter = msaof.strFiltro End If of.nFilterIndex = msaof.lngÍndiceFiltro of.lpstrFile = msaof.strArqInicial & String(512 - Len(msaof.strArqInicial), 0) of.nMaxFile = 511 of.lpstrFileTitle = String(512, 0) of.nMaxFileTitle = 511 of.lpstrTitle = msaof.strTítuloDoDiálogo of.lpstrInitialDir = msaof.strDirInicial of.lpstrDefExt = msaof.strExtensãoPadrão of.flags = msaof.lngSinalizadores of.lStructSize = Len(of) End Sub e em outro módulo: Private Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Private Const BIF_RETURNONLYFSDIRS = &H1 Public Function BrowseFolder(szDialogTitle As String) As String Dim X As Long, bi As BROWSEINFO, dwIList As Long Dim szPath As String, wPos As Integer With bi .hOwner = hWndAccessApp .lpszTitle = szDialogTitle .ulFlags = BIF_RETURNONLYFSDIRS End With dwIList = SHBrowseForFolder(bi) szPath = Space$(512) X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath) If X Then wPos = InStr(szPath, Chr(0)) BrowseFolder = Left$(szPath, wPos - 1) Else BrowseFolder = vbNullString End If End Function Crie uma caixa de texto não acoplada no seu form chamada arqBusca e um botão com o seguinte código no seu evento ao clicar: Dim tTt, cCc As Variant If Me.arqBusca = "" Or IsNull(Me.arqBusca) Then tTt = "C:\" Else cCc = Len(Me.arqBusca) Do tTt = Left(Me.arqBusca, cCc) cCc = cCc - 1 Loop Until (Right(tTt, 1) <> "\") End If Me.arqBusca.Value = localizarArquivo(tTt) Bom uso esse código para buscar arquivos TXT diversos para extração de seus dados num determinado BD acredito que você possa utilizar no seu.
-
Não entendi.
-
Bom fera se é web num seria essa a sessão correta para este post, essa dúvida será mellhor respondida em ASP/PHP ou outra linguagem WEB, elas que faram a conecxxão com o banco de dados para você usar na internet.
-
No seu relatório crie rodapé de Grupo, então crie uma caixa de texto não acoplada e na sua origem de controle ou origem (depende da versão do seu access) digite: ="Quantidade nesse grupo: " & count([nomeDoSeuCampoParaContagem]) Como vocÊ pode ter percebido substitua [nomeDoSeuCampoParaContagem] pelo nome de um campo que exista dentro do detalhes do seu relatório. Aguardo retorno pra colocar resolvido no tópico.
-
Ummm por padrão o autonumeração incrementa +1 ao campo, se tiver diferente pode ser erro do Access tente reinstalar ou olhe nas propriedades do campo para ver se num tá usando uma regra de incremento diferente.
-
Bom nas propriedades do campo autonumeração na tabela tem uma opção para você mudar como o incremento será feito, talvez sirva pra você.
-
Seguinte este tipo de ocorre por estar falatando um registro no vinculo pai, ou seja vamos supor seja um pedido este terá seu numero, e os itens do detalhe deverão estar ligados a este pedido pelo código, claro que como não há maiores detalhes, pode até ser que o problema possa ser até outro relacionamento, por isso reveja os seus relacionamentos. ok Ah sim se puder sempre que resolver suas dúvidas aqui nos avise para podermos dar como resolvido o tópico
-
Sim eu criei pra essa dúvida e com certeza se for pra ajudar pode usar sim!
-
faça uma consulta assim: select * from suaTabela where (internacao between seuCriterio and alta) or (alta between internacao and seuCritério); Não testei mas deve funcionar já que pela logica ele retornará qualquer internação que estiver entre o critério informado e a data da alta ou qualquer alta no periodo entre internação e seu critério.
-
Só complementando a resposta do Leandro, você criará um campo resultado na sua nova consulta, algo assim valorGeral:nz(Total consulta1;0) + nz(Total consulta2;0) - nz(Total consulta3;0) Digite algo assim onde deveria constar o nome de algum campo na consulta modo design, o NZ evita que seja retornado valores nulos.
-
Fera faça uma consulta que pegue o Ultimo valor registrado no campo e acrescente 2 Vamos supor que na propriedade no atual do form que deseja utilizar só impar dim tst as variant tst=dlookup("[seuCampoMax]","suaConsulta") if isnull(tst) then me.seuCampoNoForm.value=1 else me.seuCampoNoForm.value=tst+2 end if Pronto assim ele vai executar a consulta pegar o ultimo valor e incrementar 2, no caso de ser um valor nulo (primeiro registro) ele repassa um 1 para seu dai pra frente ele vai incrementando (3,5,7...) O principio para par é o mesmo só que se for nulo deve ser repassado 2 como valor inicial. Posso colocar resolvido no tópico?
-
Fera não entendi o que você está querendo fazer...
-
Bom tem um ponto e virgula antes da clásula FROM retire que deve funcionar! ok. Aguardo retorno para dar este tópico como resolvido
-
Execute essa sua função no campo nome na propriedade após atualizar, assim toda vez que o nome for alterado ela irá executar ok!
-
FEra até onde sei, a unica coisa que você poderá aproveitar é a base de dados, formulários e relatórios você terá que recriar.
-
Você pode copiar o arquivo: DoCmd.CopyDatabaseFile DatabaseFileName........... ou veja este exemplo http://developpers.blogspot.com/2008/03/ho...-using-vba.html e pesquisando pela net achei esta função (não testei mais deve funcionar) Public Function BackupCopy() 'This function will allow you to copy a db that is open, 'You must set a reference to the 'Microsoft Scripting Runtime' for the CopyFile piece to work! Dim fso As FileSystemObject Dim sSourcePath As String Dim sSourceFile As String Dim sBackupPath As String Dim sBackupFile As String sSourcePath = "C:Database" sSourceFile = "MyDB.mdb" sBackupPath = "C:DatabaseBackups" sBackupFile = "BackupDB_" & Format(Date, "mmddyyyy") & "_" & Format(Time, "hhmmss") & ".mdb" Set fso = New FileSystemObject fso.CopyFile sSourcePath & sSourceFile, sBackupPath & sBackupFile, True Set fso = Nothing Beep MsgBox "Backup was successful and saved @ " & Chr(13) & Chr(13) & sBackupPath & Chr(13) & Chr(13) & "The backup file name is " & Chr(13) & Chr(13) & sBackupFile, vbInformation, "Backup Completed" End Function fonte: http://www.bigresource.com/MS_ACCESS-Backu...--wD6x1s68.html
-
Cara num sei sei mais com explicar pra você você me pediu por mês eu fiz por mês, depois falou que era no perido então fiz por periodo, depois disse que queria qualquer coisa que tivesse no inicio ou no fim o que fosse passado como critério... Se você não puder me passar o que precisa exatamente eu ou qualquer outra pessoa não poderá lhe ajudar...
-
Ummm bom você não deu detalhes, mais posta um pedaço ou um banco parecido pra gente poder avaliar
-
Essa consulta seria algo assim:? select last(seuCampo) from suatabela;
-
(Resolvido) Erro Função Docmd.OpenReport - Access 2007
pergunta respondeu ao velozo_braga de MrMALJ em Access
Ok fera agradeço por ter postado a solução! -
Consulta para definir diferenças de registros em duas tabelas
pergunta respondeu ao Vivendo&Aprendendo de MrMALJ em Access
Como disse antes é tudo questão de usar cardinalidade você vai pegar dados de uma tabela que não estão na outra, então seria algo assim? select historico.idAluno, disciplina.idMateria from historico, disciplina where codMateria not in (select idMateria from historico); -
Você pode fazer tudo através do access, crie uma ou mais tabela com os dados que deseja armasenar e utilize o assistente de criação de para gerar seus formulário!
-
Sua dúvida é relativamente simples porém você não passou informação importante para que possamos ajuda-lo, esse formulário é uma entrada de dados ou seria na impressão? E quando você deseja que seja faita essa validação na hora que você insere o registro ou em outra situação?