
Alex Mauricio
Membros-
Total de itens
108 -
Registro em
-
Última visita
Tudo que Alex Mauricio postou
-
Bom dia pessoal. Tenho uma aplicação porém tenho um pouco de dificuldades quando dá erros para fazer identificação do mesmo e após isso acertar. Vou colocar 2 códigos abaixo com seus respectivos erros: 1) insert dá o seguinte erro: Run-time error '3155' - ODBC -- Falha ao inserir em uma tabela vinculada 2) update erro: run-time error: '3061' - parametros insuficientes. eram esperado 1 toda minha conexão, consultas, etc está funcionando.... mas tem algo errado com o insert e update q não estou enxergando obrigado
-
Boa noite Kuroi... Fiz o teste e é isso mesmo cara... Quando cria o .exe o erro "desaparece"... Obrigado
-
Bom dia pessoal. Na Empresa que eu trabalho, tem uma aplicação em Delphi e aconteceu o seguinte: A pessoa que cuidava do desenvolvimento não está mais na empresa e ninguém mais sabe dos códigos fonte. Com isso, precisamos "descompilar" um executável. Tem alguma ferramenta que faça este trabalho? Estou precisando de uma meio urgente... Muito obrigado
-
Bom dia pessoal Estou migrando uma aplicação de DAO para ADO, porem estou fazendo um teste antes... que por sinal está dando um erro q não estou localizando... segue o codigo abaixo: Option Explicit Dim conexao As New ADODB.Connection Dim resultado As New ADODB.Recordset Dim consulta As New ADODB.Command Dim argumento As New ADODB.Parameter Private Sub Form_Load() conexao.ConnectionString = "driver={MySQL};server=localhost;uid=root;pwd=root;database=bdnprecibo" conexao.ConnectionTimeout = 30 conexao.Open Set consulta.ActiveConnection = conexao End Sub Private Sub Command1_Click() Dim ssql As String ssql = "select * from tbl_usuarios order by cod_usuario asc" consulta.CommandText = ssql resultado.Open consulta, , adOpenStatic, adLockBatchOptimistic If resultado.RecordCount = 0 Then MsgBox "zero" Else msbox "tem" End If End Sub ele para na seguinte linha "conexao.Open" já chequei o nome do servidor, usuario, senha e bd e estão corretos... o erro é o seguinte run-time error '-2147467259(80004005)': [microsoft][odbc driver manager] nome da fonte de dados não encontrado e nenhum driver padrão especificado informação importante, estou ocm o driver mysql-connector-odbc-5.1.6-win32 instalado já tenmtei tb criar um dsn mas não adianto tb ( embora o objetivo seja criar sem dsn) obrigado
-
está no load conforme abaixo Private Sub Form_Load() Dim ssql As String ssql = "select * from TbLogin" Set Table_Login = BancoDeDados.OpenRecordset(ssql) Table_Login.MoveFirst limparCampos mostrarCampos habilitaCampos formatFlexGridCadUsuario carrFlexGridCadUsuario End Sub você tem uma forma de contato de mensagem rápida? gostaria de tirar algumas outras dúvidas obrigado
-
LEGAL SÓ Q TIREI AS LINHAS ssql = "select * from TbLogin order by codigoLogin asc" Set Table_Login = BancoDeDados.OpenRecordset(ssql) E SO DEIXEI O TABLE_LOGIN.MOVENEXT E APRESENTOU O SEGUINTE ERRO RUN-TIME ERROR '3420' O OBJETO NÃO É VALIDO OU NÃO ESTÁ DEFINIDO COMO PROCEDO Seguinte isso é um problema na sua lógica... quando você carrega a primeira vez ele joga para o registro 1 normal, quando você clica no "próximo", ele carrega novamente e e muda para o próximo registro ( no caso o segundo registro).. e isso fica sempre acontecendo. se de alguma maneira você consegui colocar ele no 5 registro quando clicar no "próximo" ele vai para o segundo, por causa do que falei. o que seria legal você realizar é o seguinte: não carregue o RS no escopo do botão próximo.. coloque apenas o comando para movê-lo seria legal você também verificar se é o último registro, para não ocorrer um erro de BOF/EOF.
-
Bom dia pessoal. Estou tentando fazer uma nevegação no form (primeiro, ultimo, proximo e anterior ) e tem algo que não estou conseguindo enxergar. no botão próximo está com o seguinte código Private Sub cmdProximo_Click() Dim ssql As String ssql = "select * from TbLogin order by codigoLogin asc" Set Table_Login = BancoDeDados.OpenRecordset(ssql) Table_Login.MoveNext carregaDados End Sub e no carregaDados: Private Sub carregaDados() txtCodigo.Text = Table_Login!codigoLogin txtNomeLogon.Text = Table_Login!nomeLogonLogin txtNivelUsuario.Text = Table_Login!nivelAcesso txtNomeUsuario.Text = Table_Login!nomeUsuarioLogin txtSenha.Text = Table_Login!senhaLogin txtConfirmaSenha.Text = Table_Login!senhaLogin End Sub Certo????? Clico no flexGrid no registro 1 e aparece beleza... depois clico no próximo ele vai para o registro 2.... clico novamente ele fica no 2, sendo que tenho 15 registros.;... o que pode ser????
-
Boa noite pessoal. Estou aqui novamente... Não é facil ser iniciante em desenvolvimento..rsrsrssr Na minha aplicação, tenho o seguinte código que funciona perfeitamente: Private Function adicionarDdd() 'O número de telefone na BD está com 8 dígitos... e vai passar a ter 10 (DDD + Telefone). Dim ssql As String Dim atualiza As String Dim tel_antigo As String Dim tel_novo As String Dim contador As Long contador = 0 ssql = "select Telefone from Tabela1 order by telefone asc" Set TableAntiga = BancoDeDadosAntigo.OpenRecordset(ssql) While Not TableAntiga.EOF tel_antigo = TableAntiga!telefone If contador < barraProgresso.Max Then barraProgresso.Value = barraProgresso.Value + 1 barraProgresso.Refresh If Len(Trim(tel_antigo)) = 8 Then tel_novo = "19" + tel_antigo atualiza = "update tabela1 set telefone = " & "" atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & "" BancoDeDadosAntigo.Execute (atualiza) End If contador = contador + 1 TableAntiga.MoveNext Wend MsgBox contador, vbExclamation TableAntiga.Close End Function Como todos pode observar, o código vai ler todos os campos de telefone do BD e quando o nº de telefone tiver 8 caracteres, ele adiciona + 2 que é referente ao DDD. OK? Perfeito... funciona balinha, porém, por c tratar de 108 mil registros e o usuário não está sabendo o que está acontecendo, resolvi colocar um progress bar. A partir dai, estou com um problemaço... toda vez que rodo a aplicação ele entra no if de leitura dos 8 caracteres só na primeira vez, dá o update e não entra mais no if. Já dei break em vários lugares para verificar e a variável tem conteúdo ( com 8 caracteres ) só que ele pula, não entra no update. Segue o código abaixo. Private Function adicionarDdd() 'O número de telefone na BD está com 8 dígitos... e vai passar a ter 10 (DDD + Telefone). Dim ssql As String Dim atualiza As String Dim tel_antigo As String Dim tel_novo As String Dim contador As Long contador = 0 ssql = "select Telefone from Tabela1 order by telefone asc" Set TableAntiga = BancoDeDadosAntigo.OpenRecordset(ssql) barraProgresso.Visible = True barraProgresso.Value = 0 barraProgresso.Max = TableAntiga.RecordCount While Not TableAntiga.EOF tel_antigo = TableAntiga!telefone If contador < barraProgresso.Max Then barraProgresso.Value = barraProgresso.Value + 1 barraProgresso.Refresh If Len(Trim(tel_antigo)) = 8 Then tel_novo = "19" + tel_antigo atualiza = "update tabela1 set telefone = " & "" atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & "" BancoDeDadosAntigo.Execute (atualiza) End If End If contador = contador + 1 TableAntiga.MoveNext Wend barraProgresso.Visible = False MsgBox contador, vbExclamation TableAntiga.Close End Function Como todos pode perceber, só adicionei algumas coisas para o progress bar que funciona, mas talvez pela minha falta de experiência, tem algo que não estou enxergando que está fazendo com que não entre o if e consequentemente não da o update. Obrigado.
-
Boa tarde. Gostaria de desenvolver uma rotina onde impedisse que a aplicação seja aberta 2 vezes... tem como fazer isso?????? alguém tem uma luz? obrigado
-
Boa tarde. Como seria a melhor maneira de fazer backup do banco de dados access através de uma aplicação em visual basic? estou utilizando DAO. alguém tem algum exemplo? obrigado
-
erro com gravação no registro do windows na versão vista
pergunta respondeu ao Alex Mauricio de Alex Mauricio em Visual Basic
Boa noite pessoal. Tenho uma aplicação e estou fazendo algumas modificações... no micro que estou desenvolvendo está funcionando perfeitamente, porém, em outros micros com o mesmo sistema operacional (windows xp) não está funcionando tão bem assim. O erro é o seguinte, quando vou abrir a Aplicação aparece a seguinte mensagem... "Compile Error: Can't find project or library" Caso de OK, ele aponta erro na função GetKeyValue e seleciona a String$ ( conforme selecionado em negrito). Porque em uma máquina funciona e em outra não? (segue o código em anexo e esse código está em um módulo) Obrigado CÓDIGO QUE ESTÁ NO MÓDULO Option Explicit Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Public Const REG_NONE = 0 Public Const REG_SZ = 1 Public Const REG_EXPAND_SZ = 2 Public Const REG_BINARY = 3 Public Const REG_DWORD = 4 Public Const REG_DWORD_BIG_ENDIAN = 5 Public Const REG_LINK = 6 Public Const REG_MULTI_SZ = 7 Public Const REG_CREATED_NEW_KEY = &H1 Public Const REG_FULL_RESOURCE_DESCRIPTOR = 9 Public Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2 Public Const REG_NOTIFY_CHANGE_LAST_SET = &H4 Public Const REG_NOTIFY_CHANGE_NAME = &H1 Public Const REG_NOTIFY_CHANGE_SECURITY = &H8 Public Const REG_OPENED_EXISTING_KEY = &H2 Public Const REG_OPTION_BACKUP_RESTORE = 4 Public Const REG_OPTION_CREATE_LINK = 2 Public Const REG_REFRESH_HIVE = &H2 Public Const REG_OPTION_NON_VOLATILE = 0 Public Const READ_CONTROL = &H20000 Public Const KEY_QUERY_VALUE = &H1 Public Const KEY_SET_VALUE = &H2 Public Const KEY_CREATE_SUB_KEY = &H4 Public Const KEY_ENUMERATE_SUB_KEYS = &H8 Public Const KEY_NOTIFY = &H10 Public Const KEY_CREATE_LINK = &H20 Public Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY Public Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY Public Const KEY_EXECUTE = KEY_READ Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const ERROR_NONE = 0 Public Const ERROR_BADKEY = 2 Public Const ERROR_ACCESS_DENIED = 8 Public Const ERROR_SUCCESS = 0 Public Function UpdateKey(KeyRoot As Long, KeyName As String, SubKeyName As String, SubKeyValue As String, KeyValueType As Long) As Boolean Dim rc As Long Dim hKey As Long Dim hDepth As Long Dim lpAttr As SECURITY_ATTRIBUTES lpAttr.nLength = 50 lpAttr.lpSecurityDescriptor = 0 lpAttr.bInheritHandle = True rc = RegCreateKeyEx(KeyRoot, KeyName, _ 0, KeyValueType, _ REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, lpAttr, _ hKey, hDepth) If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError If (SubKeyValue = "") Then SubKeyValue = " " rc = RegSetValueEx(hKey, SubKeyName, _ 0, KeyValueType, _ SubKeyValue, LenB(StrConv(SubKeyValue, vbFromUnicode))) If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError rc = RegCloseKey(hKey) UpdateKey = True Exit Function CreateKeyError: UpdateKey = False rc = RegCloseKey(hKey) End Function Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String) As String Dim i As Long Dim rc As Long Dim hKey As Long Dim hDepth As Long Dim sKeyVal As String Dim lKeyValType As Long Dim tmpVal As String Dim KeyValSize As Long rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError [b] tmpVal = String$(1024, 0)[/b] KeyValSize = 1024 rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ lKeyValType, tmpVal, KeyValSize) If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError Select Case lKeyValType Case REG_SZ, REG_EXPAND_SZ, REG_LINK, REG_MULTI_SZ tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1) sKeyVal = tmpVal Case REG_DWORD, REG_DWORD_BIG_ENDIAN tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1) For i = Len(tmpVal) To 1 Step -1 sKeyVal = sKeyVal + Hex(Asc(Mid(tmpVal, i, 1))) Next sKeyVal = Format$("&h" + sKeyVal) Case REG_BINARY sKeyVal = tmpVal End Select GetKeyValue = sKeyVal rc = RegCloseKey(hKey) Exit Function GetKeyError: GetKeyValue = vbNullString rc = RegCloseKey(hKey) End Function -
Boa tarde Pessoal. Tenho em minha aplicação um driveListBox, porém gostaria de tratar o erro quando o usuário seleciona o drive de disquete ( A: ) e o mesmo está vazio ou o leitor de Cd quando o mesmo está vazio. Teria como fazer? (segue o código que tenho até o momento ). Private Sub Drive1_Change() Dim d As String d = Left(Drive1.Drive, 1) If d = "a" Or d = "b" Then Drive1.Drive = "c:" End If Dir1.Path = d & ":\" End Sub
-
Boa tarde grupo. Na aplicação que uso desenvolvida em visual basic, utlizo relatórios (data report) e consequentemente um Data Environment que entre suas configurações tem uma opção onde defino o caminho do banco de dados. Tem como eu definir APENAS esta informação manualmente? Obrigado
-
Boa tarde grupo. Esta pergunta não refere especificamente ao Visual Basic, porém como não encontrei um tópico diversos vou postar aqui. Tenho uma aplicação desenvolvida em Visual Basic 6 (incluvise está com um problema no fórum sem solução até o momento..rs) e o meu gerente, quer que eu crie um manual desta aplicação. Na verdade, ele quer 2 manuais contendo o seguinte conteúdo: 1) manual de utilização do software (manual de usuário); 2) manual do desenvolvimento do software, onde deverá incluir o que foi modificado em cada nova versão Alguém que participa deste fórum tem um modelo para me enviar? Desde já, obrigado.
-
erro com gravação no registro do windows na versão vista
uma questão postou Alex Mauricio Visual Basic
Boa noite pessoal. Como é comum, estou novamente com meus probleminhas. Tenho uma aplicação pronta e que está funcionando corretamente. Porém, na empresa que utilizo, vai migrar todas as estações de trabalho para Windows Vista ou 7 (não está certo qual das 2 versões ainda). Porém, eu me antecipei e fiz um teste e tive a desagradável surpresa que é o seguinte: Toda vez que eu rodo a minha aplicação pela primeira vez, o sistema verifica se existe uma chave no registro e caso não abre um formulário de configuração. Esse formulário deveria criar uma chave no registro do windows e salvar um valor. Antes funcionava, agora quando mando gravar, não apresenta nenhum erro, porém não cria a chave e muito menos salva o valor. Segue o código abaixo referente ao botão GRAVAR CONFIGURAÇÕES e o código que está em um módulo. ( O CÓDIGO SUBLINHADO SÃO AS LINHAS QUE FAZ A GRAVAÇÃO NO REGISTRO). CÓDIGO DO BOTÃO GRAVAR CONFIGURAÇÕES Private Sub cmdGravarConfig_Click() On Error Resume Next Dim x, y As Integer x = 5 y = 5 [u] Call UpdateKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Empresa\SGCC\BdNovo", _ "DbPath", txtConfigBanco.Text, REG_SZ)[/u] [u] Call UpdateKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Empresa\SGCC\BdAntigo", _ "DbPath", txtConfigBancoAntigo.Text, REG_SZ)[/u] BancoDeDados.Close BancoDeDadosAntigo.Close Set BancoDeDados = OpenDatabase(txtConfigBanco.Text, False, False, ";PWD=" & Trim(Str(x + 4)) & _ Trim(Str(x + 4)) & Trim(Str(x - 4)) & Trim(Str(x - 4)) & Trim(Str(x + 3)) & _ Trim(Str(x + 3)) & Trim(Str(x - 3)) & Trim(Str(x - 3)) & Trim(Str(x + 2)) & _ Trim(Str(x + 2)) & Trim(Str(x - 2)) & Trim(Str(x - 2)) & Trim(Str(x + 1)) & _ Trim(Str(x + 1)) & Trim(Str(x - 1)) & Trim(Str(x - 1)) & Trim(Str(x)) & Trim(Str(x))) Set BancoDeDadosAntigo = OpenDatabase(txtConfigBancoAntigo.Text, False, False, ";PWD=" & Trim(Str(y + 4)) & _ Trim(Str(y + 4)) & Trim(Str(y - 4)) & Trim(Str(y - 4)) & Trim(Str(y + 3)) & _ Trim(Str(y + 3)) & Trim(Str(y - 3)) & Trim(Str(y - 3)) & Trim(Str(y + 2)) & _ Trim(Str(y + 2)) & Trim(Str(y - 2)) & Trim(Str(y - 2)) & Trim(Str(y + 1)) & _ Trim(Str(y + 1)) & Trim(Str(y - 1)) & Trim(Str(y - 1)) & Trim(Str(y)) & Trim(Str(y))) MsgBox "Banco de Dados Configurado com sucesso!", vbInformation + vbOKOnly If frmPrincipalMDI.Visible = True Then Unload Me ElseIf frmPrincipalMDI.Visible = False Then MsgBox "Reinicie o Sistema!", vbInformation + vbOKOnly End End If End Sub CÓDIGO QUE ESTÁ NO MÓDULO Option Explicit Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Public Const REG_NONE = 0 Public Const REG_SZ = 1 Public Const REG_EXPAND_SZ = 2 Public Const REG_BINARY = 3 Public Const REG_DWORD = 4 Public Const REG_DWORD_BIG_ENDIAN = 5 Public Const REG_LINK = 6 Public Const REG_MULTI_SZ = 7 Public Const REG_CREATED_NEW_KEY = &H1 Public Const REG_FULL_RESOURCE_DESCRIPTOR = 9 Public Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2 Public Const REG_NOTIFY_CHANGE_LAST_SET = &H4 Public Const REG_NOTIFY_CHANGE_NAME = &H1 Public Const REG_NOTIFY_CHANGE_SECURITY = &H8 Public Const REG_OPENED_EXISTING_KEY = &H2 Public Const REG_OPTION_BACKUP_RESTORE = 4 Public Const REG_OPTION_CREATE_LINK = 2 Public Const REG_REFRESH_HIVE = &H2 Public Const REG_OPTION_NON_VOLATILE = 0 Public Const READ_CONTROL = &H20000 Public Const KEY_QUERY_VALUE = &H1 Public Const KEY_SET_VALUE = &H2 Public Const KEY_CREATE_SUB_KEY = &H4 Public Const KEY_ENUMERATE_SUB_KEYS = &H8 Public Const KEY_NOTIFY = &H10 Public Const KEY_CREATE_LINK = &H20 Public Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY Public Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY Public Const KEY_EXECUTE = KEY_READ Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const ERROR_NONE = 0 Public Const ERROR_BADKEY = 2 Public Const ERROR_ACCESS_DENIED = 8 Public Const ERROR_SUCCESS = 0 Public Function UpdateKey(KeyRoot As Long, KeyName As String, SubKeyName As String, SubKeyValue As String, KeyValueType As Long) As Boolean Dim rc As Long Dim hKey As Long Dim hDepth As Long Dim lpAttr As SECURITY_ATTRIBUTES lpAttr.nLength = 50 lpAttr.lpSecurityDescriptor = 0 lpAttr.bInheritHandle = True rc = RegCreateKeyEx(KeyRoot, KeyName, _ 0, KeyValueType, _ REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, lpAttr, _ hKey, hDepth) If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError If (SubKeyValue = "") Then SubKeyValue = " " rc = RegSetValueEx(hKey, SubKeyName, _ 0, KeyValueType, _ SubKeyValue, LenB(StrConv(SubKeyValue, vbFromUnicode))) If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError rc = RegCloseKey(hKey) UpdateKey = True Exit Function CreateKeyError: UpdateKey = False rc = RegCloseKey(hKey) End Function Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String) As String Dim i As Long Dim rc As Long Dim hKey As Long Dim hDepth As Long Dim sKeyVal As String Dim lKeyValType As Long Dim tmpVal As String Dim KeyValSize As Long rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError tmpVal = String$(1024, 0) KeyValSize = 1024 rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ lKeyValType, tmpVal, KeyValSize) If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError Select Case lKeyValType Case REG_SZ, REG_EXPAND_SZ, REG_LINK, REG_MULTI_SZ tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1) sKeyVal = tmpVal Case REG_DWORD, REG_DWORD_BIG_ENDIAN tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1) For i = Len(tmpVal) To 1 Step -1 sKeyVal = sKeyVal + Hex(Asc(Mid(tmpVal, i, 1))) Next sKeyVal = Format$("&h" + sKeyVal) Case REG_BINARY sKeyVal = tmpVal End Select GetKeyValue = sKeyVal rc = RegCloseKey(hKey) Exit Function GetKeyError: GetKeyValue = vbNullString rc = RegCloseKey(hKey) End Function -
mas como consigo uma base de dados para que isso ocorra???? ou seja, quando digitar o cep ele terminar de preencher? obrigado
-
então... o erro ta no sendkeys mesmo... mais precisamente na linha SendKeys ("{TAB}") e não funciona em nenhum lugar do sistema.... mas só não funciona no windows vista/7 obrigado
-
Boa noite grupo. Tenho uma pequena, simples, aplicação de nível iniciante que funcionava bem. Porém, quando atualizei para o Windows 7, ele deu alguns erros que foram concertador, porém no ítem sendkeys ele apresenta o erro Run-time error '70' - Permission denied. Segue o códgio abaixo: Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then SendKeys ("{TAB}") KeyAscii = 0 End If End Sub Obrigado.
-
fiz isso... apertei o F5 e executou minha stored procedure sem erros.... porém preciso salvar essa SP... certo?????????? onde salvo?????????? talvez esse erro que está dando na aplicação seja porque a aplicação não está achando a SP... Porque quando crio a conexão com a base de dados no ODBC para SQL Server ele mostra que os TESTES FORAM CONCLUÍDOS COM ÊXITO... Obrigado
-
Boa tarde pessoal. Tenho uma dúvida. Tenho uma pequena aplicação e gostaria de criar um arquivo externo (configura.ini) onde em cada estação eu possa modificar a configuração para o mesmo localizar o BD. Tipo. Hoje a configuração do BD é assim: Set BancoDeDadosAntigo = OpenDatabase("I:\SGCC\Versao_1.0.01\prjSGCC\BD\BANCO.MDB") Gostaria de passar essa configuração para um ini. Obrigado.
-
bom dia pessoal. estou com um problemaço... seguinte... criei um commondialog para selecionar o arquivo etc, etc, beleza até ai tudo bem agora.... preciso ter noção de como ler o arquivo linha por linha e depois fazer um insert no BD. os textos que achei sobre isso fico muito vago... alguém consegue me dar uma idéia de como fazer????????? obrigado.... Private Sub selecionarArquivos() Dim tipo As String Dim caminho As String Dim nomeArq Dim numLinha 'CONFIGURA A CAIXA DE DIÁLOGO cmmCarregaArquivo.DialogTitle = "Selecione um arquivo para carregar no Banco de Dados!" cmmCarregaArquivo.InitDir = "c:" 'cmmCarregaArquivo.InitDir = App.Path --> mostra o diretório onde está o sistema 'cmmCarregaArquivo.FileName = arquivo - CASO QUEIRA DEIXAR PRÉ-DEFINIDO UM ARQUIVO tipo = "Arqs. CSV(*.csv)|*.csv|Todos " & "Arqs. (*.*)|*.*|" cmmCarregaArquivo.Filter = tipo cmmCarregaArquivo.Flags = cdlOFNFileMustExist + _ cdlOFNHideReadOnly + _ cdlOFNLongNames + _ cdlOFNExplorer cmmCarregaArquivo.CancelError = False cmmCarregaArquivo.ShowOpen If cmmCarregaArquivo.FileName = "" Then MsgBox "0 (zero) arquivo(s) selecionado!", vbInformation + vbOKOnly, "Alerta" Else lblCaminho = cmmCarregaArquivo.FileName lblTamanhoArquivo = FileLen(cmmCarregaArquivo.FileName) 'LEITURA DO ARQUIVO CSV nomeArq = lblCaminho Open nomeArq For Input As #1 Do While Not EOF(1) Line Input #1, numLinha Loop Close #1 End If End Sub
-
invalidy property value ao clicar na grid
pergunta respondeu ao Alex Mauricio de Alex Mauricio em Visual Basic
quando executo ?txttelefone.mask aparece ?txtTelefone.Mask (__)____-____ quando executo ?txttelefone.text aparece ?txtTelefone.text (__)____-____ -
a mensagem de erro é só essa mesmo... bom... peguei a linha que está acusando o erro... consulta.Execute referente a stored procedure, estou usando o sql server 2005 quando pesso para salvar ele salva em Meus Documentos > SQL Server Management Studio Express > Project Não sei se é isso mesmo...
-
invalidy property value ao clicar na grid
pergunta respondeu ao Alex Mauricio de Alex Mauricio em Visual Basic
tentei colocar o texto no txttelefone.text = "(99)9999-9999" e dá o mesmo erro também tentei colocar o promptinclude e rodei o programa de novo... erro tb abraços -
invalidy property value ao clicar na grid
pergunta respondeu ao Alex Mauricio de Alex Mauricio em Visual Basic
então... fiz o que você solicitou. entrei no immediate e pedi para ver o valor ?flexgridCadastro.text e o resultado foi (99)9999-9999 obs.: fiz a mesma coisa porém antes de fazer a seleção e peguei o mesmo registro... resultado... (99)9999-9999 e não dá erro... é só depoiis que eu filtro. obrigado