Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - TheGhost(Z)

#181
Hola. Si alguien me puede ayudar con hacer una consulta SQL con variables.

Dim Tabla, Campo, TextoBusca As String

Tabla = "Empleados"
Campo="Nombre"
TextoBusca="Pedro"


Lo que deseo es mas o menos asi, pero no se como llevarlo a lo correcto:

Rs.Open "SELECT * FROM Tabla  where Campo = TextoBusca", DBConex, adOpenStatic, adLockOptimistic


He intentado con Solo la variable TextoBusca y funciona:
Rs.Open "SELECT * FROM  Empleados where Nombre = '" & Trim(TextoBusca) & "'  ", DBConex, adOpenStatic, adLockOptimistic


Pero lo he intentado haciendo lo mismo para todas las variables pero me arroja error Consulta Imcompleta
Rs.Open "SELECT * FROM '" & Tabla & "'  where '" & Campo & "' = '" & Trim(TextoBusca) & "'  ", DBConex, adOpenStatic, adLockOptimistic


Saludos
Pedro Jeri
#182
Ok. si dicen que no hay problema, pues lo dejare como esta..


Saludos y gracias por el aporte

Pedro Jeri
#183
ventana desplegable...si, de esas que hay en casi todo programa en la parte superior de la ventana

No se si te refieres a los MENU's que se encuentran en la parte superior de los programas es que que van de: Archivo  Edicion ect

Pues si es esa utiliza el editor de Menu's: es sencillo, simplemente ingresa Los datos que quieras y se haran solas.
#184
La Verdad en esto de "SQL Server" estoy cero en conocimientos. Lo unico que me suena de SQL es cuando hacen consultas "SQL" en Acces del tipo:

Select * From Empleados Where ID="1054" y ect, etc, ect.

Tendria que llevar un curso en alguna academia de por ahi... Ademas no se si el SQL Server es una aplicacion como el Acces que almaceda datos y permite hacer Formularios, Reportes, Consultas, ect. o solo sirve para almacenar datos.

¿Y si fuera solo para almacenar datos me imagino que si deseo conectarme desde Vusual basic , porque esa es mi intencion ya que esta me permite hacer cosas que en los formularios de Acces no se puede, tendria que elegir la "BD SQL" y nombre de las tablas?.

No se. en fin, Eso ya es otro tema.... por ahora me interesa saber mas opiniones sobre mi inquietud.


Saludos,

Pedro Jeri
#185
A todas las personas de este foro que siempre ayudan y sugieran a los que tengan una inquietud.

Veran, pues estoy dandome el tiempo de crear un Aplicacion simple con una base de datos en acces.

La base de datos, en acces, se encuentra en una "PC" llamado "Server" y que tengo otras 5 "PC's" que se llamaran, Cliente01, CLiente02,...... y Cliente05.

Mi Objetivo es que Las "PC's CLientes" obtengan datos de la Base de datos que se encuentra en la "PC Server".

Pues he probado con una simple aplicacion donde tengo la base de datos en acces que almacena:

Tabla: Empleados
Campos: Nombre, apellidos, cargo, telefono y direccion.

Pues he creado una simple aplicacion usando DATA's

Data1.BaseName
Data1.Recorset

Data1.AddNew
Data.Edit
Data1.Update

Etc, ect y ect. Es decir conexion permanente



Pues una ves ejecutado la aplicacion mis Textbox se cargan con los campos que quiero ya que estan enlazados a mi DATA

Pues luego compilo la aplicacion y la instalo en las 5 "PC's Cliente"

y al ejecutar puedo obtener los datos en las 5 "PC's Clientes" a la ves o al mismo tiempo

Pues llegue a lo que queria! Obtener datos de la Base de datos "Trabajo" que se encuentra en la "PC Server"

¡¡¡¡He aqui mi inquietud!!!!!

Si bien es cierto que he llegado a mi objetivo y bien por ello, pero a la ves siento una curiosidad sobre lo que estara pasando interiormente y de ahi a este tema.

1.- Me preguntaba si todas las PC's Clientes que estan conectadas a la base de datos "Trabajo" ¿habra algun problema?. Es decir si CLientes1 esta en el registro 5 y Clientes2 tambien esta en el registro 5, que estara pasando?

Sera correcto esto o talves luego de estar manipulando con la PC clientes1 y clientes2 llegue a estropear la base de datos. o supongamos que PC Cliente1 se le ocurre modificar el telefono del empleado Juan y, tambien, PC Cliente2 esta modificando el telefono del empleado juan.

¿Que ocurrira si ambos estan conectados a la base de datos con un DATA y modifiquen con:?

Data1.Recorsed.Edit

Simplemente digo: Habra algun problema o no pasa nada. Simplemete si Cliente1 cambia el telefono del empleado Juan por 3885017 y luego lo guarda con:
Data1.Recorsed.UpDate

Y despues cliente2 tambien cambia el telefono del empleado Juan por 3885017 y lo guarda. ¿no pasa nada, porque no ocurre ningun problema, porque si Cliente1 lo guarda pues cliente 2 tambien lo guarda ensima y ya?..

Por todo ello pensaba probrar de la siguente manera mediante:

Cn.Open ("etc, etc, etc=" \\SERVER\D\Trabajo.mdb")
Rs.Open "select *  from Empleados ", Cn, etc, etc, ect etc


Primero abro la base de datos:
Tomo los datos que necesito
cierro la base de dato

Si trabajara de esta manera creo que no tendria problemas, ya que si CLiente1 se conecta a la BD, pues para cuando cliente2 se conecte a la BD encontrara cerrara la BD y podra comunicarse sin ningun problema. Y asi sucesivamente.

Pues asi todas las "PC clientes" estaran trabajando solo con tados obtenidos y no como el caso anterior que siempre estaba conectado a la BD mediente un DATA.

Pero tambien pensaba lo tedioso que es este segundo caso:

1.- Para empezar si tengo mil registros, pues estaria conectandome ala BD y cargar a mi aplicacion en un tabla temporal los mil registros. y para cada tabla seria lo mismo. tedioso, no?.

2- Cada ves que modifique un dato tendria que conectarme a la BD, guardar el dato modificado y cargar nuevamente los datos en una tabla temporal de mi aplicacion y desconectarmen de la BD para que los demas PC Clientes se conecten y no me encuentren cotilleando ahi y producir un posible error. Aparte de ello si despues de haber modificado el dato los demas "PC Clientes" no se enteraran de lo modificado hasta que se conecten a la BD y carguen los datos nuvamente, ¿no?.


Veran amigos todo lo que escribi este desde mi punto personal:

De ahi mi inquietud hacia uds. para que me saquen de esta duda: simplemente espero sugerencias o como uds. ya saben de estas cosas.

02 simples preguntas hacia uds.

1.-  ¿Si utilizo el primer caso habra algun problema como pienzo o no pasa nada y lo dejo asi?

2.- ¿Si el primer caso es incorrecto, seria recomendable tomar el segundo caso de abrir y cerrar la BD inmediatamente o existe otra manera?

Saludos,
Pedro Jeri

#186
En un foro anterior me recomendaron que use tipo numerico solo cuando vaya hacer operaciones matematicas. Por ello los campos Telefono de casa y trabajo son de tipo caracter.

¿Pero como hago para poner la sentencia Null?

algo asi????

Set Cn = New Connection
Set Rs = New Recordset
Cn.Open ("Provider=Microsoft.Jet.OLEDB.4 .......... ect, etc")
Rs.Open "select *  from Remitentes ", ........ ect, ect y etc

With Rs
.Find "CodRem='" + Trim(Text1.Text) + "'"

If Text2.Text="" Then
.Fields(2) = Null   'Telefono de casa
End If

If Text3.Text="" Then
.Fields(3) = Null     ' Telefono de trabajo
End If

End With
Rs.Update

Rs.Close
Cn.Close



Un porsi acaso mas... no necesita poner al inicio un Rs.Edit ,verdad?



Saludos
Pedro Jeri



#187
Hola amigos.. Aqui como siempre molestandolos.

Tengo un problemilla al guardar datos. Bueno, no exactamente al guardarlos, sino al guardar un dato despues de modificar por un dato en balnco.

Ejemplo:

Set Cn = New Connection
Set Rs = New Recordset
Cn.Open ("Provider=Microsoft.Jet.OLEDB.4 .......... ect, etc")
Rs.Open "select *  from Remitentes ", ........ ect, ect y etc

With Rs
.Find "CodRem='" + Trim(Text1.Text) + "'"
.Fields(2) = Text2.Text    'Telefono de casa
.Fields(3) = Text3.Text    ' Telefono de trabajo
End With
Rs.Update

Rs.Close
Cn.Close


Bueno al inicar:
Telefono de casa     = 3885017
Telefono de trabajo = 4240674

Lo que pasa es que quiero modificar que ya no tenga el telefono de trabajo: es decir el valor del text3.text = ""

Pues al momento de guardar no guarda los cambios. porque sucede eso.

Pero si cambio de numero si se modifican los datos

Pues segun veo que si cuaalquier de mis valores es igual a vacio y mi registro tiene dato. no puede sobreescribirla, pues porqeu no hay dato que ingresar. Eso entiendo.

Pero si en el registro hay un dato=5 y modifico por otro dato=6 pues si puede cambair esos datos..

He intentado poniendo de que si eldato esta vacia pues sea igual a " " (un espacio). asi sobreescribe el dato del registro por " " (un espacio)... pero eso no lo veo tedioso y molesto ademas si quiero modificar un dato por nada pues deberia borrar el dato del registro simplemente.

Porfa.. si me podrian sugerir o si conocen de alguna otra sentencia ...

Atte,
Pedro Jeri
#188
No man. Gracias por el aporte.

Saludos
#189
Gracias Xpeed. Pues ahi estaba mi error. Que par hacer una consulta con la clausula Where y que los datos los tome de una variable, como por ejemplo:

Dim Xnombre As String
Xnombre="TheGhost(Z)"

Seria:

Where  Nombre=' " & Xnombre & " ' Order by Nombre

esa es la correcta, cierto.
#190
Hola a todos nuevamente.

Verais mi objetivo es abrir una tabla y ubicarme en una registro determinado.

Es decir ubicarme en la fila que dicho dato sea igual a mi variable. Mi problema es como funciona consultar aparir de una varibale. Porque no me sale con variable. Pero ingresando el dato directamente no tengo ningun problema.

Ejemplos de lo que hice:

#### Esta No funciona, porque es con variable  (ID)####

Dim ID As String * 6
ID= ListView1.SelectedItem.ListSubItems(1)       ' ListView1.SelectedItem.ListSubItems(1)= PEJE05


Cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\bdraicesDATA.mdb")
Rs.Open "select *  from Remitentes WHERE CodRem =
ID order by CodRem", Cn, adOpenDynamic, adLockOptimistic

##### Pero esta si funciona porque no uso ninguna variable, sino ingreso el dato directamente #####

Cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\bdraicesDATA.mdb")
Rs.Open "select *  from Remitentes WHERE CodRem = '
PEJE05' order by CodRem", Cn, adOpenDynamic, adLockOptimistic