Ir para conteúdo
Fórum Script Brasil

Carolina Marinho

Membros
  • Total de itens

    22
  • Registro em

  • Última visita

Tudo que Carolina Marinho postou

  1. Oi Fulvio, boa tarde! Pensei nessa possibilidade também, o problema é que eu to fazendo isso tudo via VB 6, e assim fica beeeeem complicado... A solução que eu achei foi: Gerar um SEQUENCIAL na tabela; ALTER TABLE DBO.tabela ADD SEQUENCIAL BIGINT Incrementar esse SEQUENCIAL; declare @secuence BIGINT ; set @secuence = '0'; update DBO.tabela set @secuence = SEQUENCIAL = @secuence + 1 E comparar o TELEFONE; select * from tabela as a inner join (select MAX(SEQUENCIAL) AS SEQUENCIAL ,TELEFONE from tabela group by telefone) as b on a.SEQUENCIAL = b.SEQUENCIAL ORDER BY A.TELEFONE Isso me deu o resultado esperado, mas corro o risco de um timeout em algum lugar... :) Muito obrigada, Fulvio!!! Vou testar a sua solução e verificar o menor tempo de execução!
  2. Bom dia, tenho uma tabela com 22 campos, onde o campo TELEFONE possui registros duplicados. Preciso pegar todos os campos da tabela mas que o TELEFONE não se repita. Exemplo: NOME_CLIENTE | ENDERECO | TELEFONE | CPF MARIA DA SILVA | RUA DO SABÃO 23, 505 | 12345678 | 123.456.789-0 JOSE DE SOUZA | RUA 13 48, CASA 2 | 12345678 | 987.654.321-0 Os telefones são iguais. Eu preciso pegar os 4 campos da tabela mas somente um registro, não importando qual deles (MARIA ou JOSE) alguém pode me ajudar?
  3. Consegui resolver... Abri a conexão usando With rs .Open Source:=sql, _ ActiveConnection:=cn, _ CursorType:=adOpenKeyset, _ LockType:=adLockOptimistic End With Obrigada :)
  4. kuroi, Descobri o que está acontecendo, mas não sei resolver... Antes de fazer o update, eu fechei o rs e funcionou perfeitamente. Sim, minha conexão funciona, eu consigo fazer select numa boa, o problema (eu acho) é que eu estou tentando fazer um update no registro que o select tá... fiz assim pra testar: Do While Not rs.EOF numeroCliente = rs.Fields("NUMERO_CLIENTE").Value numeroDoc = rs.Fields("NUM_DOC").Value If Not IsNull(numeroDoc) Then If Not IsNumeric(numeroDoc) Then rs.Close variavel_a_testar = numeroDoc If TestaRegExp("[^0-9]+", variavel_a_testar) = False Then numeroDoc = aString Update_documento End If End If Else numeroDoc = "00000000" Update_documento End If rs.MoveNext Loop Function Update_documento() Set cn_update = New ADODB.Connection Set rs_update = New ADODB.Recordset Banco_de_dados = "xxxxxx" servidor = "xxxxxxxxxxx" cn_string = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & Banco_de_dados & ";Data Source=" & servidor ' & " User ID=*****;Password=********" Set cn_update = New ADODB.Connection With cn_update .Open cn_string .CommandTimeout = 120 End With txt_sql = "Update_Documento " & numeroCliente & ", '" & numeroDoc & "'" cn_update.CommandTimeout = 120 cn_update.Execute txt_sql, , adExecuteNoRecordsSet End Function Assim funcionou, só que quando volta pro loop, dá erro dizendo que tá fechado (claro....). Isso mostra que o erro é o select aberto... Enfim, pensei em duas soluções, mas não sei executar nenhuma delas... 1- Criar uma matriz com colunas NUMERO_CLIENTE, NUMERO_DOC, NUMERO_TELEFONE (são os campos que eu preciso) que vai salvar os dados do select, para que eu possa fechá-lo antes do update; 2- Disseram que, por padrão, o VB trava qualquer execução na tabela que está sendo ultilizada, mas que tem como destravar, possibilitando o select ativo e o update. Espero ter conseguido explicar...
  5. Pessoal, boa tarde! Não estou conseguindo fazer um update simples em uma tabela, está dando 'tempo excedido'. Já tentei aumentar o tempo de comando e nada... Se eu pego a querie pelo immediate e rodo direto no banco, funciona como esperado... Alguém pode ajudar? Private Sub Form_Load() Dim usuario, senha, servidor, BancoDados As String Dim sql As String Dim sql_update As String Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset servidor = "TI01" BancoDados = "master" cn.Provider = "SQLOLEDB" cn.Properties("Data Source").Value = servidor cn.Properties("Initial Catalog").Value = BancoDados cn.Properties("User ID").Value = "usuario" cn.Properties("Password").Value = "senha" cn.Open Set rs = New ADODB.Recordset Set rs.ActiveConnection = cn sql = "SELECT * From Base_WA_140909" sql = sql & " WHERE (TXT_NOME_CIDADE = 'TANGUA') AND (CLASSE_SUBCLASSE > '02') AND " sql = sql & " (EST_CLIENTE = '0') OR (EST_CLIENTE = '3')" rs.Open sql, cn rs.MoveFirst Do While Not rs.EOF numeroCliente = rs.Fields("NUMERO_CLIENTE").Value If IsNull(rs.Fields("telefone").Value) Then sql_update = "UPDATE Base_WA_140909 SET TELEFONE = '00000000' WHERE NUMERO_CLIENTE = '" & numeroCliente & "'" cn.CommandTimeout = 120 cn.Execute sql_update, , adExecuteNoRecordsSet End If rs.MoveNext Loop End Sub
  6. Eu achei!!! Eu tinha procurado em componentes... :unsure: Vou testar e volto pra dizer o que aconteceu :blush:
  7. Também não tem... Achei uma solução válida, mas pra ser feita no SQL IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='nomedatabela') SELECT 'tablename exists.' ELSE SELECT 'tablename does not exist.' Isso serviu pra mim. Mas, mesmo assim, eu ainda prefiro no VB <_<
  8. Não tem essa opção nos componentes... 'Microsoft ActiveX Data Objects Extensions for DDL and Security 2.x ( ADOX)' :angry:
  9. Kuroi, acabei vendo o favorito errado :unsure: ficou assim: servidor = "WA-TAURUS" BancoDados = "SGC" cnTaurus.Provider = "SQLOLEDB" cnTaurus.Properties("Data Source").Value = servidor cnTaurus.Properties("Initial Catalog").Value = BancoDados cnTaurus.Properties("User ID").Value = "*****" cnTaurus.Properties("Password").Value = "*****" cnTaurus.Open Set rsTaurus = New ADODB.Recordset Set rsTaurus.ActiveConnection = cnTaurus Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table Dim existe As Boolean Set cat.ActiveConnection = cnTaurus existe = False For Each tbl In cat.Tables If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If Next Continua dando o mesmo erro, agora na linha 'Dim cat As New ADOX.Catalog'
  10. Kuroi, fiz o seguinte: Dim db As DAO.Database Dim existe As Boolean Dim Tabela As DAO.TableDef existe = False Set db = DBEngine.OpenDatabase("D:\Banco_de_Dados_WA\SGC.mdf") For Each Tabela In db.TableDefs If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If Next mas dá erro "Used-defined type not defined" na linha 'Dim db As DAO.Database'
  11. Preciso de uma rotina que verifique se uma tabela existe no banco de dados (estou usando sql server), caso exista, faz o select nessa tabela, caso não exista (o que daria erro no VB), seja realizado um outro procedimento... Gostaria de saber qual condição usar.
  12. Muito obrigada, kuroi! Mais uma vez! ;)
  13. Boa tarde! Eu tenho uma rotina genérica (servidores, bancos e tabelas diferentes, dependendo da solicitação do usuário) que tira informações do banco de dados e insere numa planilha do excel, mas essas informações podem ter acentos ( ex: ã, é, á...). Em algumas tabelas, as palavras tem acento e em outras, não. Utilizei o Select Case para fazer a compração, mas precisaria retirar os acentos, caso eles existam... Alguém sabe se isso é possível? Para facilitar o entendimento: Select Case UCase(Trim(ws_file.Range("B" & contA4).Value)) Case "OCUPADO" ws_file.Range(ActualCol & contA4).Value = ocupado Case "não ATENDE" ws_file.Range(ActualCol & contA4).Value = naoatende Case "SECRETARIA ELETRONICA" ws_file.Range(ActualCol & contA4).Value = secretaria Case "TENTATIVA SEM SUCESSO" ws_file.Range(ActualCol & contA4).Value = tentsemsucesso End Select Na quarta linha do código, não é "não ATENDE" e sim "N A O ATENDE" sem os espaços. O forum tá editando para 'não'.
  14. Ocultar a plan2 funcionou usando o Set. As colunas continuam sendo ocultadas até a H. :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: Mas eu to achando que as colunas estão travadas, ou ligadas, ou qualquer coisa do tipo, porque se eu mudo, por exemplo, pra ("I:M") funciona
  15. Nomeei a planilha como Plan2 mesmo, e não funcionou, continua dando o mesmo erro. é preciso utilizar Set ws_file = wb_file.Worksheets(numero da planilha) ??? Coloquei assim: Rows("23:34").Select Selection.EntireRow.Hidden = True Columns("C:E").Select Selection.EntireColumn.Hidden = True Plan2.Visible = xlSheetHidden E continua escondendo as colunas de C a H
  16. Ocultar as linhas funcionou perfeitamente. Com as colunas, eu coloquei exatamente como voce escreveu, mas tá ocultando da C até a H :blink: E o da planilha (aba) dá erro. Object Required (xlSheetHidden = 0) :angry: Pra excluir definitivamente como seria?
  17. Preciso ocultar algumas linhas de uma planilha via VB6. Alguém sabe como? Se não for muito, como faria para ocultar uma aba e/ou uma coluna? :mellow:
  18. Kuroi, como os usuários desse sistema usam monitores de 15", eu fui testando e ficou assim: Private Sub Form_Load() frmCadastro.Height = Screen.Height frmCadastro.Width = Screen.Width frmCadastro.Move 0, 0 frmGerenciamento.Height = Screen.Height frmGerenciamento.Width = Screen.Width frmGerenciamento.Move 0, 0 frmPrincipal.Height = Screen.Height frmPrincipal.Width = Screen.Width frmPrincipal.Move 0, 0 Picture2.Width = Screen.Width - 270 Picture1.Width = Screen.Width - 170 Picture1.Height = Screen.Height - 170 cmd_sair.Left = cmd_sair.Left - 300 frmGerenciamento.Picture1.Height = Screen.Height - 200 frmGerenciamento.Picture1.Width = Screen.Width - 200 frmCadastro.frm_dados_agente.Width = Screen.Width - 425 frmCadastro.frm_banco.Width = Screen.Width - 425 frmCadastro.frm_observacao.Width = Screen.Width - 425 frmCadastro.txt_observacao.Width = frmCadastro.frm_observacao.Width - 600 End Sub Tá funcionando, e centralizado (quase perfeito), mas vou tentar o que você falou. Muito obrigada!
  19. kuroi, a parte da resolução da tela funcionou perfeitamente, mas os botões e textboxes e outros continuam no mesmo lugar. Tem como centralizá-los de acordo com a largura do frame ou form?
  20. Oi! Alguém pode me dizer como fazer com que o form esteja sempre no tamanho maximo e centralizado na tela, levando em consideração as diferentes resoluções de tela? :mellow:
  21. não... Se acrecento Write #2, txtagencia.text ele me retorna "" no bloco de notas... Queria que ele gravasse no log o texto digitado :/ isso foi retornado... "Clique no campo Agencia",#2008-08-06 15:18:11# ""
  22. Boa tarde! Criei um log de eventos onde é registrado cada clique dado pelo usuário, mas gostaria também de gravar o que foi digitado nos text box, sem que seja necessário salvar. Para tentar facilitar o entendimento de voces, é um sistema de vendas, onde o operador digita o nome do cliente, endereço, telefone, essas coisas. Os dados são gravados no banco de dados após pressionado o botao salvar. Consegui fazer isso: Private Sub txtagencia_Click() strOutFileName = "C:\Documents and Settings\carol\Desktop\NET 2.0\Logs\Log_OP_" & gblNOME_USUARIO & Format(Now(), "DDMMYYYY") & "" Open strOutFileName For Append As #2 Write #2, "Clique na caixa de texto Agencia (Tela Complementar)", Now() Write #2, Close #2 End Sub Se o operador clicar no text box txtagencia, será salva a msg no arquivo de log, mas o que ele digitou lá eu não to conseguindo salvar... Alguém pode ajudar? Obrigada!
×
×
  • Criar Novo...