Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GuilhermeTI

Erro - Method or data member not found

Recommended Posts

ei sei que é chato ficar criando topicos com erros simples mas eu nao consigo resolver o problema

 

no botao cadastrar do meu projeto ele da o seguinte erro " Method or data member not found" nessa linha

gmembroscad.Open "Select * from membroscad where nome='" & txtnome.Text & "' Or telefone='" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

 

na palavra txtfone.Text e essa grifada o .text.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

gmembroscad.Open "Select * from membroscad where nome like '" & txtnome.Text & "' Or telefone = " & txtfone.Text & "", membros, adOpenStatic, adLockPessimistic

 

ou

 

gmembroscad.Open "Select * from membroscad where nome like '" & txtnome.Text & "' Or telefone like '" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

A primeira é caso o campo telefone seja numerico e a segunda caso o campo telefone seja texto. Quando for fazer select's em campos numericos não utilize aspas simples, só use as duplas e utilize o operador "=" igual.

Em campos texto utilize aspas simples seguida da dupla e troque o operador "=" (igual) pela palavra "LIKE"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

gmembroscad.Open "Select * from membroscad where nome like '" & txtnome.Text & "' Or telefone = " & txtfone.Text & "", membros, adOpenStatic, adLockPessimistic

 

ou

 

gmembroscad.Open "Select * from membroscad where nome like '" & txtnome.Text & "' Or telefone like '" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

A primeira é caso o campo telefone seja numerico e a segunda caso o campo telefone seja texto. Quando for fazer select's em campos numericos não utilize aspas simples, só use as duplas e utilize o operador "=" igual.

Em campos texto utilize aspas simples seguida da dupla e troque o operador "=" (igual) pela palavra "LIKE"

 

eu fiz isso mas nao mudou nada continua dando o mesmo erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, digite txtfone. a aperte control mais barra de espaço que irá aparecer as opções disponíveis para você usar.

 

Provavelmente não terá a opção text, por isso está dando esse erro.

 

Se isso acontecer, existem duas possíveis causas, ou o objeto que você está usando realmente não tem a propriedade text (nesse caso pode ser um label por exemplo) ou você colocou um index no objeto, e se for isso, você tem que fazer txtfone(index).text.

 

Tenta e avisa.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao o objeto é um text e eu coloquei o que você pedio ai deu outro erro " Control Array Element "0" Doesn't exist " na mesma linha de codigo !!

 

É que você colocou indice 0, talves esse não seja o índice do seu objeto.

 

Clique nele e olhe nas propriedades dele, no index, se tem algum valor. Se tiver, veja qual é para colocar o certo no código ou apague, visto que você não irá precisar de index para o que está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao nao tem a apção .Text pra por, entao eu tirei o valor de 1 para nada no index apaguei o valor ai deu outro erro cara " wrong number of arguments or invalid property assigments"

 

na mesma linha de codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala GuilhermeTI

 

Nossa tem uns errinhos chatos assim que nos pegam mesmo

dexa eu mergulhar no tópico hehe

 

Provavelmente esse último erro aconteceu pq você tem duas caixas de texto com o mesmo nome, já que o VB cria o índice nos casos de controles com nomes iguais... procura no seu form ai pra ver se tem duas caixas de texto com o nome txtnome, caso houver delete ou mude a propriedade de uma delas. Se não der certo, certifique-se de que o valor que você inseriu para a propriedade name na caixa de texto seja realmente txtnome... como uma última opção tente deletar a caixa de texto e criá-la novamente

 

 

Sabe amigo, nem sei como seu código tá rodando, e talvez por algum desses motivos que dá esse erro ai

não tenho certeza mas acho que tem um errinho na sintaxe de seleção

 

'Você fez assim:
gmembroscad.Open "Select * from membroscad where nome='" & txtnome.Text & "' Or telefone='" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

Tente fazer assim:

gmembroscad.Open "Select * from membroscad where nome=" & "'" & txtnome.Text & "'" & " Or telefone=" & "'" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

Note que sempre a sintaxe SQL deve estar entre aspas (") logo, você deve concatenar quando utilizar a sintaxe do vb (&)

Note também que todo valor que deve ser buscado no BD deve ser consultado da seguinte forma: 'nome', por exemplo 'Guilerme'...

Dessa forma você deve cocatenar à texbox as aspas simples ('), mas como elas são consideradas Strings devem estar entre aspas(")... assim surge a sintaxe: "'" & txtnome.Text & "'"

Para criar uma cláusula OR, você deve concatenar novamente, pois está voltando à sintaxe SQL, e lembre-se SQL sempre dentro de aspas (")... dessa forma obterá: (...) where nome=" & "'" & txtnome.Text & "'" & " Or telefone=" & "'" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

 

Bom acho que é mais ou menos isso

 

Ficou meio complicado, mas espero que ajude

Qualquer coisa posta ai

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae cara entao valeu pela ajuda em gente entao cara esse negocio da sintax eu acho que nao ta errado pq eu to tendo curso de VB com access eo meu professor fez um projeto com essa sintax e deu certo, a que você passou nao seria para o BD SQL?????

mas mesmo assim obrigado pela ajuda aprendi mais hehehehe entao realmente eu com preguica acabei copiando os texts entao por isso gerou os index entao eu apaguei todos os texts os recriei e agora deu outro erro na mesma linha do select no botao cadastrar mas tambem é o mesmo select do botao consultar cara agora acho que nos iremos conseguir e o erro seleciona a linha toda!!!!

 

"Object variable or with block variable not set"

 

 

 

E olha que eu to prescisando desse projeto cara e mais tenho que por FOTO ainda heheheheheh mas vou procurar nao encher mais o saco de vcs hehehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae cara entao valeu pela ajuda em gente entao cara esse negocio da sintax eu acho que nao ta errado pq eu to tendo curso de VB com access eo meu professor fez um projeto com essa sintax e deu certo, a que você passou nao seria para o BD SQL?????

mas mesmo assim obrigado pela ajuda aprendi mais hehehehe entao realmente eu com preguica acabei copiando os texts entao por isso gerou os index entao eu apaguei todos os texts os recriei e agora deu outro erro na mesma linha do select no botao cadastrar mas tambem é o mesmo select do botao consultar cara agora acho que nos iremos conseguir e o erro seleciona a linha toda!!!!

 

"Object variable or with block variable not set"

 

E olha que eu to prescisando desse projeto cara e mais tenho que por FOTO ainda heheheheheh mas vou procurar nao encher mais o saco de vcs hehehehe

 

Bom, só me intrometendo um pouco. Faelman, o que você fez não é necessário não. Note que a sintax que o Guilherme havia criado também tem aspas simples ('), só que ele utilizou dentro das aspas duplas ("), então não tem porque estar errado.

 

Bom voltando ao assunto que importa.

 

Guilherme, você tem como colocar seu código do erro?

 

Pelo visto antes você estava utilizando objetos com nomes iguais, por isso o index estava sendo criado, e agora pelo jeito, você está utilizando nomes de objetos que não existem.

 

Dê uma conferida em objeto por objeto, olhe todos os nomes e depois compare com os nomes que está utilizando no seu código. Lembre-se que para objetos com nomes iguais (caso ainda tenha algum) você deve se atentar para qual o index dele e identificar no código.

 

São erros simples que só estão ocorrendo por distração, mas isso é assim mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, só me intrometendo um pouco. Faelman, o que você fez não é necessário não. Note que a sintax que o Guilherme havia criado também tem aspas simples ('), só que ele utilizou dentro das aspas duplas ("), então não tem porque estar errado.

:rolleyes: hehe é verdade, rsrs as várias estradas para se chegar ao destino

mas nunca tinha visto desse jeito não, eu ia até sugerir o uso do "chr(39)", mas tudo bem

hehe

como disse o Guilerme, foi bom que eu tb aprendi um pouco

XD

 

 

Ah outra sugestão para o erro que está acontecendo agora, dependendo do tipo

de objeto de conexão que você está usando (ADO ou DAO por exemplo), o erro pode ser pela ausência

de uma linha de código tipo:

 

Set gmembroscad= New ADODB.Recordset

ou

Set gmembroscad= CreateObject("ADODB.recordset")

que deve ser inserida antes de abrir a tabela

por exemplo:

Set gmembroscad= CreateObject("ADODB.recordset")
gmembroscad.Open "Select * from membroscad where nome like '" & txtnome.Text & "' Or telefone like '" & txtfone.Text & "'", membros, adOpenStatic, adLockPessimistic

num sei se eu tô certo, mas qd você chama um nome que não existe o VB dá um erro tipo "Object Required"

Mas verifica ae se tem a linha

XD

 

Flws gente Um abraço Gulherme, Claudio Neto

Compartilhar este post


Link para o post
Compartilhar em outros sites

AEEEEEE vlw cara consegui cadastrar e consultar graças a linha de codigo " Set gmembroscad= New ADODB.Recordset"

obrigado cara agora deixa eu te perguntar uma coisa o meu professor meu ensinou essa ninha " Set gmembroscad= nothing " que ele falow que é pra esvaziar a tabela para abrir o select no outro projeto meu, deu certo mas nesse nao deu porque a sua linha deu certo????

 

 

entao gente sem quere ser chato mas eu queria aprender a usar o objeto DATA que é tipo que nem no access vai pulando de registro em registro alguem sabe como programar?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

AEEEEEE vlw cara consegui cadastrar e consultar graças a linha de codigo " Set gmembroscad= New ADODB.Recordset"

obrigado cara agora deixa eu te perguntar uma coisa o meu professor meu ensinou essa ninha " Set gmembroscad= nothing " que ele falow que é pra esvaziar a tabela para abrir o select no outro projeto meu, deu certo mas nesse nao deu porque a sua linha deu certo????

 

 

entao gente sem quere ser chato mas eu queria aprender a usar o objeto DATA que é tipo que nem no access vai pulando de registro em registro alguem sabe como programar?????

Fala Guilherme

 

Olha cara esse negócio de "Set ...=nothing" eu nunca usei, mas acredito que seja utilizado quando você fecha a tabela - Provavelmente essa linha serve pra desvincular a variável gmembroscad da tabela do BD.

Pode ser tb que seja utilizado em casos (acredito ser o seu) em que você já está com a tabela aberta no VB e quer

reabrí-la - com uma nova consulta por exemplo,

mas para isso antes você já deveria ter vinculado a tabela com a linha "Set gmembroscad= New ADODB.Recordset", dá uma olhada no código pra ver se não é isso. XD

 

Ah e a respeito do DATA, não tenho muito conhecimento a respeito disso não, vou ter que passar a bola novamente pro Cláudio Neto (um abraço kra!) e pro pessoal do fórum ai, mas pesquisando um pouco, li que é meio arcaico e só funcionaria com BD de versões antigas do ACCESS

olha a referência ai, aqui do fórum msm

http://forum.imasters.com.br/index.php?showtopic=288192

 

Flws mano

Um abraço

Att Rafael Lemes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Faelwan pela bola, rs... Atenderei sua solicitação. Abração.

 

Realmente o objeto data é algo precário e desnecessário.

 

Na forma que está utilizando, com recordset, atende todas sua necessidades para fazer o que quer que seja com sua tabela.

 

O "set gmembroscad= nothing" é só para ser usado realmente se for fechar sua tabela mesmo, mas a verdade é que não é muito utilizado e nem tão necessário., pois se você depois tiver que utilizar novamente sua variável gmembroscad para carregar outra tabela (ou a mesma) terá que fazer novamente "Set gmembroscad= New ADODB.Recordset". E como acreditamos que toda vez que for usar essa variável ela será do tipo recordset, não é necessário ficar dando nothing toda hora.

 

Olha só, se estiver com dificuldades em manipular seu banco utilizando o recordset, dê uma olhada nesse link, acredito que te ajudará bastante.

 

Ah, e só mais uma coisa, talvez você veja por ai o uso do set na declaração da variável, assim:

private rs as new adodb.recordset

 

Isso não é aconselhável, te trará erros no programa. Faça sempre assim:

private rs as adodb.recordset

 

e depois faça o set rs = new adodb.recordset

 

Vai postando suas dúvidas ai que aos poucos vamos ajudando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ja que o Objeto DATA é desnecessario eu vou tertar fazer uma consulta por data de nascimento porque meu BD tem por enquanto 140 registros e eu to vendo os incompletos para completa-los entao vou fazer uma consulta pelo Campo data de nascimento se estiver vazio entao exibir no grid !!! acho que nao muito dificiu neh????

 

agora eu quero colocar uma foto com os botoes adicionar e alterar, mas é uma foto por registro eu ja fui em alguns topicos de foto e tal mas nao consigo fazer plis somebody can help me???

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ja que o Objeto DATA é desnecessario eu vou tertar fazer uma consulta por data de nascimento porque meu BD tem por enquanto 140 registros e eu to vendo os incompletos para completa-los entao vou fazer uma consulta pelo Campo data de nascimento se estiver vazio entao exibir no grid !!! acho que nao muito dificiu neh????

 

agora eu quero colocar uma foto com os botoes adicionar e alterar, mas é uma foto por registro eu ja fui em alguns topicos de foto e tal mas nao consigo fazer plis somebody can help me???

E você já conseguiu fazer sua consulta por data?

 

Só uma dica, talvez você não consiga fazer um select desse jeito por exemplo "where data = '01/02/08'". E você terá que fazer "where data between '01/02/08 00:00:00' and '01/02/08 23:59:59'".

 

Quanto a foto, respondi no seu outro tópico, se tiver problemas avise.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo assim o negocio de pesquisar por data da nascimento é tipo assim poe 3 texts DIA MES ANO ai a pessoa digita as informações e ai faz a consulta e exibe no flexgrid

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.