¿Cómo hago en Visual Basic para que valor del combo guarde unos valores de los text que tengo?

Mi problema creo sea muy sencillo pero no estoy muy estudiado en vb.
Necesito que al variar los valores constantes de un combo me varíen los textos que se encuentran abajo. O sea que cada valor del combo guarde unos valores de los text que tengo.
Lo he probado con la función "Dlookup" pero no me funciona, quizás es porque yo quiero trabajar en visual basic y el ejemplo que utilizo es de access.
¿Qué puedo hacer? ¿Qué función me puede controlar el combo para que cada constante sea un registro nuevo?
No los baso en en ningún dato, ese es mi problema, no se hacerlo.
Cuando selecciono valor del combo me tienen que aparecer los textbox que tengo ya hechos con valores referentes al valor del combo, y si vario el valor del combo me tienen que aparecer los textbox con los valores del nuevo valor del combo.

1 Respuesta

Respuesta
1
A ver... tu quieres que al seleccionar un dato del combo... ¿muestre valores en las cajas de texto?... ¿Pero qué valores de una tabla?... pero si escribes un valor nuevo en el combo, ¿se te debe generar un nuevo registro en la tabla que se vas ael combo?... ¿Y se refleje en las cajas?... explicame bien y te ayudo como hacerlo... es más dame un email... y te mando un ejemplo...
Att:telemaco
Pues si que te lo he explicado mal
Mira esta página:
http://accessbuho.mvps.org/tematico.asp?topico=dao
El ultimo ejemplo(106) de esta página es lo que yo quiero hacer pero aquí esta hecho con access y yo lo tengo que hacer en VB.
Mi e-mail es:
[email protected]
Gracias por tu ayuda
Un saludo
Jorge
Ahora si entendí... haber, lo que pasa es que se debe basar en consulta sql y variables tipo recordset de ado(es mejor ado que dao)...
Según el dato que elijas del combo, se hará una consulta por sql (select * from [TABLA] WHERE [CONDICIONSEGUN VALOR COMBO]"
Y esta consulta se manda aun recordset, se coge los valores que se necesitan y se pasan a las cajas de texto así:
MiValor.text = Reg("campo")
Voy a tratar de enviarte un ejemplo... el fin de semana ...
Att:telemaco
Hola telemaco!
Gracias por tu respuesta pero no he entendido lo que tengo que hacer ya que estoy un poco perdido en el tema.
Si pudieras mandarme un ejemplo seria genial; ya tienes mi e-mail.
Un saludo
Jorge
Mi jefe ha cambiado de opinión
Ahora el programa tiene que referenciarse desde una tabla que se encuentra en excel, con lo cual estoy más perdido si cabe que antes.
Mi duda sigue siendo básicamente la misma, ahora solo cambia que tengo que utilizar como datos de base una tabla de excel.
Un saludo
Gracias
Jorge
Disculpa la demora... no me he olvidado de la pregunta... bueno al cambiar a excel, es un poco diferente... te voy a mandar un ejemplo (espero a más tardar el domingo... porque es que tengo un mundo de trabajo... y esta vez es de verdad.. aunque así fue la vez pasada... jejej) que se conecta con un DataEnvironment y trabaja con recordset de ado...
Att:telemaco
Este código que te pongo ahora con un listbox, dos textbox y cuatro botones, es el que estoy utilizando para hacer las pruebas, también consta de una tabla en access.
Lo que he intentado por todos los medios y no lo consigo es crear un botón que me mande los datos desde el textbox a una casilla espscifica de la página de excel que tengo creada.
Dim db As Database
Dim rs As Recordset
Dim ws As Workspace
Dim max As Long
Dim I As Long
Dim errormsg
Dim dbedit As Boolean
Private Sub cmdcancel_Click()
txtSurname.Text = vbNullString
txtSurname.Enabled = False
Text1.Text = vbNullString
Text1.Enabled = False
cmdsave.Enabled = False
cmdcancel.Enabled = False
cmdend.Enabled = True
cmdEdit.Enabled = True
Set rs = db.OpenRecordset("tbldata", dbOpenTable)
list
End Sub
Private Sub cmdEdit_Click()
txtSurname.Enabled = True
Text1.Enabled = True
cmdEdit.Enabled = False
cmdend.Enabled = False
cmdsave.Enabled = True
cmdcancel.Enabled = True
dbedit = True
End Sub
Public Function edit()
If txtSurname.Text = vbNullString Or _
Text1.Text = vbNullString Then
errormsg = MsgBox("All Fields Must Contain Data", vbCritical, "Error")
Exit Function
End If
rs.edit
rs("surname") = txtSurname.Text
rs("hola") = Text1.Text
rs.Update
txtSurname.Text = vbNullString
txtSurname.Enabled = False
Text1.Text = vbNullString
Text1.Enabled = False
cmdsave.Enabled = True
cmdcancel.Enabled = True
cmdend.Enabled = True
cmdEdit.Enabled = True
Set rs = db.OpenRecordset("tbldata", dbOpenTable)
list
End Function
Private Sub cmdend_Click()
db.Close
End
End Sub
Private Sub cmdsave_Click()
If dbedit = True Then
Call edit
End If
End Sub
Private Sub Form_Load()
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(App.Path & "\Database.mdb")
Set rs = db.OpenRecordset("tbldata", dbOpenTable)
list
End Sub
Private Function list()
rs.MoveLast
rs.MoveFirst
max = rs.RecordCount
rs.MoveFirst
lstdata.Clear
For I = 1 To max
lstdata.AddItem rs("surname")
rs.MoveNext
Next I
End Function
Private Sub lstdata_Click()
Set rs = db.OpenRecordset("Select * from tbldata where surname = '" & Trim(lstdata.list(lstdata.ListIndex)) & "'")
rs.MoveFirst
Text1.Text = rs("hola")
txtSurname.Text = rs("Surname")
End Sub
¿Puedes ayudarme en esto?
¿O es pedir demasiado?
Se que estas ocupado pero mi jefe ya me mira mal... je je
Bueno un saludo
Si quieres mira este codigo mientras tanto.. mientras te envio un ejemplo..:
http://www.mvp-access.com/juanmafan/trucos/expaexcel.htm
Adáptalo a tus necesidades.
Att:telemaco
Gracias telemaco!
He mirado el código del enlace y me parece muy bueno y sencillo pero, debo ser un inútil porque no consigo que me funcione.
¿Podrías mandarme el ejemplo que me dijiste?
Un saludo
Jorge
Disculpa la demoira en contestar... PRA VARIAR.. NO.. JE JE
YA te envíe un ejemplo... tengo otro por si necesitas...
Att:telemaco
Mejor que otro ejemplo, ¿me podrías contestar una duda más?
Veras:
Tengo que mandar una serie de textbox a una página de excel, esto ya lo he hecho con este botón:
Private Sub Command2_Click()
Set ApExcel = CreateObject("Excel.application")
ApExcel.Visible = True
ApExcel.Workbooks.Open FileName:="C:\Documents\Hoja1.xls"
ApExcel.Cells(4, 1).Formula = Text2.Text
ApExcel.Cells(4, 2).Formula = Text1.Text
end sub
Pero ahora necesito que se rellene la página de excel con una nueva linea (fila) cada vez que pulso el botón.
Lo estoy intentando con esta funcion, pero no me funciona:
Public Function Projektzeile()
Dim j As Double
j = 10
While Application.WorksheetFunction.ApExcel(Cells(j, 2))
j = j + 1
Wend
Projektzeile = j
End Function
¿Sabrías decirme que puedo hacer?
Muchas gracias por tu ayuda eres muy amable.
Un saludo
Jorge
Lo puedes hacer con la el método ApExcel. Cells(4, 1), como rellenas la celda... la primer parte es la coordena da de la fila y la segunda la columna... lo que debes hacer es SABER cual es la ultima fila e insertar el valor como lo haces.. por ejemplo si es la fila 5, entonces seria:
ApExcel.Cells(5, 1).Formual= "Valor a ingresar"
Att:telemaco
¿Pero cómo le puedo decir al programa que me averigüe cual es la ultima fila?
Ese es mi problema, creo que no es complicado pero llevo intentando averiguar como se hace desde una semana.
Te agradecería que me ayudaras ya que como dicen en mi tierra "estoy más perdió que el barco del arroz"
Un saludo
Jorge
Si necesitas saber cual es la ultima fila, por eso no hay problema, ya que veo que con un while recorres las filas de excel, la posición la guarda j, eso quiere decir que la ultima posición sera el ultimo valor que tomo j+1..
...
While Application.WorksheetFunction.ApExcel(Cells(j, 2))
j = j + 1
Wend
...
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas