Ir para conteúdo
Fórum Script Brasil

Iceguy

Membros
  • Total de itens

    274
  • Registro em

  • Última visita

Tudo que Iceguy postou

  1. O que vem a ser isso Form!cb!Tab_Produtos­­_Fornecedor2_add? Se você quer comparar esse dado com uma tabela tem que fazer uma select Tenta criar um módulo de Classe chamado Fornecedor Daí usa algo assim: Option Compare Database Option Explicit Private conn As ADODB.Connection Private cmd As ADODB.Command Private prm As ADODB.Parameter Private rs As ADODB.Recordset Private Sub Class_Initialize() Set conn = CurrentProject.Connection Set cmd = New ADODB.Command cmd.ActiveConnection = conn cmd.NamedParameters = True End Sub Private Sub Class_Terminate() cmd.ActiveConnection.Close Set rs = Nothing Set cmd = Nothing Set conn = Nothing Set prm = Nothing End Sub Public Function buscaFornecedor(Optional ByVal valor As String) As Boolean BuscaFornecedor = False If valor = "" Or IsEmpty(valor) Or IsNull(valor) Then GoTo Sair End If 'Troque campoFornecedor pelo nome do campo onde tem o fornecedor 'Troque tabelaFornecedor pelo nome da tabela de fornecedores cmd.CommandText = "SELECT campoFornecedor FROM tabelaFornecedor WHERE campoFornecedor = @Fornecedor" 'Troque o 50 em Size:=50 pelo tamanho do campo na tabela de fornecedores Set prm = cmd.CreateParameter(Name:="@Fornecedor", Type:=adVarChar, Size:=50, Direction:=adParamInput, value:=valor) cmd.Parameters.Append prm On Error GoTo Erro cmd.ActiveConnection.BeginTrans Set rs = cmd.Execute cmd.ActiveConnection.CommitTrans 'Se retornou algum valor na busca então o fornecedor existe If Not(rs.BOF And rs.EOF) Then buscaFornecedor = True End If Sair: Exit Sub Erro: cmd.ActiveConnection.RollbackTrans Resume Sair End Sub Aí chama assim: Private Sub cns_Click() Dim fornec As Fornecedor Set fornec = New Fornecedor If fornec.buscaFornecedor(cb.Value) Then DoCmd.OpenForm "Tab_Produtos­­_Fornecedor2_add", , "cb", "cb=" & cb Else MsgBox "Produto não cadastrado, Contate o Administrador", vbExclamation, Estoque End If End Sub PS: Não testei
  2. Não lembro bem, mas acho que você tem que criar um ADP que ele roda no SQL Server
  3. Você usa 3 consultas? Por que não usa 1 só com tud, pode ser que elas fiquem pedindo a data, por isso pede 2x
  4. SELECT * FROM Tabela WHERE MONTH(Data) = 1 Ele busca tudo de Janeiro é isso?
  5. Iceguy

    Entidades e relacionamentos

    Você precisa entender o que a empresa faz, no caso ela é uma montadora de computadores, compra peças e vende para clientes. Pronto, já temos o objetivo da nossa base de dados. Agora divida as etapas, vamos analisar: O que são clientes e fornecedores? São meus contatos, então preciso criar a tabela de contato Que tipo de contato eu tenho? Tenho Clientes e Fornecedores, então preciso da tabela de tipo de contato onde cadastro o código do tipo e a descrição do tipo (No caso 0 - Cliente e 1 - Fornecedor) Quais informações tenho em um contato além do tipo? código do contato, Nome, Endereço(s), Telefone(s), Observações. Em observações coloco coisas como Falar com João, ou ligar durante a noite, coisa do tipo. Por que mais de um Endereço? Posso ter Endereço de correspondência, Endereço de entrega, etc., por isso preciso da tabela de endereço O que compoe um endereço? Código do endereço, Unidade Federativa, Cidade, Bairro, Logradouro, Número, CEP e Tipo de Endereço. Como tenho mais de um tipo de endereço, preciso da tabela de tipo de endereço (campo código do tipo de endereço e descrição do tipo de endereço) Opa! Um contato pode ter um ou muitos endereços, e um endereço pode ter um ou muitos contatos (no caso de duas pessoas na mesma casa), então preciso de uma forma pra unir isso. Preciso da tabela de endereço do contato, onde vinculo os códigos do endereço com o do endereço Por que mais de um Telefone? Posso ter telefone celular, telefone comercial, telefone residencial, etc., então preciso da tabela de tipo de telefone (Ex: 0 - Residencial, 1 - Celular, 2 - Comercial) O que compoe a tabela de telefone? código do Telefone, código de área, numero do telefone, tipo do telefone Opa... Novamente um contato pode ter um ou muitos telefones e um telefone pode ter um ou muitos contatos, então temos a tabela de telefone do contato para vincular os dois códigos Com isso temos nossa forma de comunicação com ambas as partes, agora precisamos cadastrar nossos produtos. Do que são compostos os produtos? De componentes, correto? O que é preciso guardar de um componente? código do componente, nome do componente, fabricante do componente, fornecedor do componente, preço de compra do componente, preço de venda do componente(sugerido) e especificação(ões) do componente. O que são especificações? São as coisas que ele pode fazer, por exemplo uma placa mãe tem slots de memória, tipo de socket para o processador, frequência de barramento, entradas USB, etc, já um pente de memória tem tipo, memória física, frequência de atuação, etc, então pra isso eu preciso da tabela de especificação do componente O que tem na especificação? Tipo e valor, mas pra isso precisamos de uma tabela de tipo de especificação, onde tenho o código do tipo e a descrição do tipo, mudando assim o nome do campo Tipo na tabela de especificação para código do tipo Ex: Componente cod=1, nome=GeForce 8800 GT, fabricante=NVidia, fornecedor=7(código do contato), preço de compra=50$, preço de venda=100$ Especificação codTipo=1 valor=512MB Especificação codTipo=2 valor=GDDR3 Tipo de Especificação codTipo=1 descTipo=Memória Física Tipo de Especificação codTipo=2 descTipo=Tipo Memória Com isso já cadastro tudo quanto é tranqueira para montar meu computador. Mas agora falta montar e transformar peças em produtos, não falta? Para isso preciso da tabela de produto O que tem em um produto? código do produto, tipo e nome. O tipo é a tabela de tipo de produto, ex: 0 - computador completo, 1 - computador sem monitos, 2 - hd externo, etc. E os componentes? Cada componente está em zero ou muitos produtos e cada produto tem 1 ou muitos componentes, portanto preciso da tabela de produto montado onde vinculo o código do produto ao código do componente. E o valor? Isso é uma informação onde você soma o valor sujerido de venda e tem o do produto final Até agora saiu contato e estoque? Falta acoplar a isso o básico de sistema de compra e venda vinculando na compra o contato do tipo fornecedor, com o cnpj do fornecedor, etc e na tabela componente comprado vincula a compra com o componente. Na venda vincula o contato do tipo cliente, seu cpf, etc com a tabela de produto vendido que tem o código da venda com o código do produto. E por fim faz as famigeradas tabelas conta a pagar e conta a receber e coloca aí número de NF, valor pago, coisa do tipo
  6. Troca a linha strSQL = strSQL & " FROM CadastroFornecedores WHERE ((CadastroFornecedores.Fornecedor)=" & [Forms]![ConsultaFornecedores]![Lista236] & ");" por strSQL = strSQL & " FROM CadastroFornecedores WHERE ((CadastroFornecedores.Fornecedor)= '" & [Forms]![ConsultaFornecedores]![Lista236] & "');" Tava faltando aspas simples (') antes e depois de um texto na SQL
  7. Será que Access roda isso? ahuahauahua SELECT r.codigo, r.cliente, r.titulo, r.descricao, r.tipo, r.data FROM ( SELECT COUNT(*) as posicao , a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data FROM (SELECT * FROM tb_anuncios_prest WHERE tipo = 'A' ORDER BY codigo DESC) AS a INNER JOIN (SELECT * FROM tb_anuncios_prest WHERE tipo = 'A' ORDER BY codigo DESC) AS b ON ( a.codigo < b.codigo OR a.codigo = b.codigo ) GROUP BY a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data UNION SELECT COUNT(*) as posicao , a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data FROM (SELECT * FROM tb_anuncios_prest WHERE tipo = 'E' ORDER BY codigo DESC) AS a INNER JOIN (SELECT * FROM tb_anuncios_prest WHERE tipo = 'E' ORDER BY codigo DESC) AS b ON ( a.codigo < b.codigo OR a.codigo = b.codigo ) GROUP BY a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data ) AS r ORDER BY r.posicao, r.tipo DESC; Testei com esses seus dados e ele retornou isso: codigo cliente titulo descricao tipo data 7| 1 Advocacia 6 Anuncio de Teste E 12/9/2011 8 1 Advocacia 7 Anuncio de Teste A 13/9/2011 6 1 Advocacia 5 Anuncio de Teste E 15/9/2011 5 1 Advocacia 4 Anuncio de Teste A 15/9/2011 4 1 Advocacia 3 Anuncio de Teste E 14/9/2011 3 1 Advocacia 2 Anuncio de Teste A 15/9/2011 2 1 Advocacia 1 Anuncio de Teste E 13/9/2011 0 1 Advocacia Anuncio de Teste A 15/9/2011 1 1 Advocacia 0 Anuncio de Teste E 15/9/2011
  8. Testa essa SQL e vê se funciona SELECT COUNT(*) as posicao , a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data FROM tb_anuncios_prest AS a INNER JOIN tb_anuncios_prest AS b ON ( a.codigo < b.codigo OR a.codigo = b.codigo ) WHERE a.tipo = 'A' GROUP BY a.codigo, a.cliente, a.titulo, a.descricao, a.tipo, a.data ORDER BY count(*); Objetivo é trazer todos os A ordenados por código e colocar o número da linha no campo posição. Vê se funciona, se der certo você me avisa que faço o resto da SQL pra você **Editei a SQL agora, tava errada hehehe
  9. A própria aplicação do Access mostra isso em uma tabela ou outro sistema chama isso? Da pra fazer algo assim: -Cria duas tabelas temporárias idênticas a sua tabela de dados e com um campo autoincrement (numeração automática) -popula uma com os "A" e outra com os "B" ordenados por código decrescente -Depois busca um union das duas ordenado pelo código autoincrement que você criou e depois pelo tipo -Depois de usar da um drop nas tabelas temporárias
  10. isso é um dos campos da busca, o outro tem que ser a atividade que você ta controlando. Visualiza o SQL da sua consulta e cola aqui
  11. data não é "", quando tu não grava nada fica null ou 0 SeImed((isnull([Data de Início]) OU [Data de Início] = CDate(0)) E [DataDeInícioPrevista] < now(); ...
  12. Tenta esse javascript function trocaTitulo(titulo) { document.title = titulo; }
  13. Acho que isso deve ajudar você: SELECT CLI.Nome, CLI.Telefone FROM tabelaCliente AS CLI UNION SELECT FUN.Nome, FUN.Telefone FROM tabelaFuncionario AS FUN UNION SELECT FOR.Nome, FOR.Telefone FROM tabelaFornecedor AS FOR Com isso você tem os registros distintos das tabelas. Os campos devem coincidir em tipo e quantidade, e o nome do retorno é o campo da primeira select. Se quiser trazer tudo, mesmo duplicados, então use UNION ALL para selecionar todos os registros.
  14. Ele é moderador, isso é frase que ele colocou padrão na assinatura porque muita gente vem com dúvida que já foi respondida e gera novo tópico, deixando o forum mais "entupido" de coisas
  15. Habilita macros, muda a segurança do access 2007. Provavelmente aparece uma barrinha amarela embaixo dos ribbons, tipo barrinha avisando que bloqueou popup no IE, lá tem Habilitar.
  16. Iceguy

    Proteção Access

    FrontEnd -> arquivo .mde que tem frmulários e códigos BackEnd -> arquivo .mdb com tabelas e senha de acesso daí ao invés de CurrenDB() você se conecta no seu BackEnd e busca os dados (passando a senha na connection string)
  17. Iceguy

    Problemas com IF

    Ele nem entra no while? tenta trocar isso: If rsC.RecordCount <> 0 Then por isso If Not(rsC.BOF And rsC.EOF) Then
  18. Iceguy

    Problemas com IF

    hummm... Isso é um bot pra operar outro sistema?
  19. Iceguy

    Proteção Access

    Colocar senha de acesso?
  20. Monta a fórmula ou a regra que ajudamos no SQL. Ex: Se valor < 28 : I = Registrador * 0,08; Se valor >= 28 E < 50 : I = Registrador * 1,2; Se valor >= 50 : I = Registrador * 1,85; Aí com base nisso podemos ajudar na consulta.
  21. Tenho um Palm com WinCE e quero usar ele pra coletar uns dados, fiz a página em ASP e to rodando em um servidor local. No Palm eu me conecto na rede, consigo "PINGAR" outras máquinas da rede mas não consigo acessar o site pelo IE do Palm. Minha rede local tem autenticação por usuário e senha no domínio, mas não sei como autenticar pelo palm Em painel de Controles > Usuários tem lá Network ID, coloquei lá e ele acessou =D
  22. Public Function Periodo() As String If Time$ >= "00:00" And Time$ < "12:00" Then Periodo = "Bom Dia!" ElseIf Time$ >= "12:00" And Time$ < "18:00" Then Periodo = "Boa Tarde!" ElseIf Time$ >= "18:00" And Time$ <= "23:59" Then Periodo = "Boa Noite!" End If End Function aí você chama a função ex: Debug.Print Periodo & " José!"
  23. troca FROM PEDIDOS_PGTOS por (SELECT PEDIDOS_PGTOS.COD_PED FROM PEDIDOS_PGTOS GROUP BY PEDIDOS_PGTOS.COD_PED) AS PEDIDOS_PGTOS que já funciona, ou coloca outro alias pra sua consulta e substitui todos os PEDIDOS_PGTOS. por seu alias
  24. Iceguy

    Data Anterior

    Acho que um cast no campo resolve 'Converte o campo texto para data depois subtrai um dia CDate(seuCampoData) - 1 ou 'Converte o campo texto para data, depois para inteiro longo, então subtrai 1 e converte novamente para data CDate(CLng(CDate(SeuCampo))-1)
×
×
  • Criar Novo...