Solucionado guille! cualquier otra duda me lo comentas aqui te pongo el codigo entero pero cambiale la cadena de conexion xq esta con la de mi maquina

. Nos Vemos guille. Saludos!.
Create esta variable global
Código vb:
Ver original'CREO ESTA VARIABLE PARA CONTROLAR SI SE REALIZO CLIC
'EN CUALQUIER BOTON DE UNA DE LAS FAMILIAS
Private accion As Integer = 0
cargar_formulario_Productos:
Código vb:
Ver originalPublic Sub cargar_formulario_Productos(ByVal fam As String)
conexion.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Serv\Escritorio\TpvVigoSe\TpvVigo\Tpv.mdf;" & _
"Integrated Security=True;" & _
"Connect Timeout=30;" & _
"User Instance=True"
'Dim nuevobotonProd As New Button
'Creo las variables que definen el area de botones por fila
Dim bxf, contador As Integer
'Creo la variables que contendran las dimensiones de los botones
Dim altoBoton, anchoBoton As Integer
'Creo las variables de los puntos en los cuales empiezo a pintar los botones
Dim x, y As Integer
'-------------------------------------------------------------------------------------------
bxf = 9 'Por ejemplo defino 9 botones por fila
contador = 0
anchoBoton = 54
altoBoton = 87
x = 10
y = 320
'--------------------------------------------------------------------
''Aqui verifico si se presiono para eliminar los
''botones creados anteriormente y no se esten
''amontonando con los de la otra consulta
If accion = 1 Then
' Recorremos la colección de controles del formulario
For Each ctrl As Control In Me.Controls
' Si el tipo de control es un Button
If TypeOf ctrl Is Button Then
' Si se llama "x"
If ctrl.Name = "x" Then
' Lo eliminamos de la colección
Me.Controls.Remove(ctrl)
End If
End If
Next
'Limpio la tabla productos para que no se incremente
undataset.Tables("productos").Clear()
End If
Dim conlumna As New DataColumn
conlumna.ColumnName.Contains("Producto")
cmd.Connection = conexion
cmd.CommandText = "select Producto from Productos where plu = " & fam & " ORDER BY Orden ASC"
adapta.SelectCommand = cmd
adapta.Fill(undataset, "Productos")
For i As Integer = 0 To undataset.Tables("Productos").Rows.Count - 1
'Si alcanzo el maximo de columnas de la fila a pintar
If contador = bxf Then
'seteo el valor del contador
contador = 0
'doy la coordenada para que inicie otra fila para crear botones
y = y + anchoBoton
x = 10
End If
Dim nuevobotonProd As New Button
nuevobotonProd.BackColor = Color.Khaki
nuevobotonProd.Name = "x"
nuevobotonProd.Location = New Point(x, y)
nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
nuevobotonProd.Text = undataset.Tables("Productos").Rows(i).Item(0).ToString()
Me.Controls.Add(nuevobotonProd)
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton
Next
End Sub
cargar_formulario_familias :
Código vb:
Ver originalPublic Sub cargar_formulario_familias()
'AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()).Click, AddressOf btnEvent_Click
conexion.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Serv\Escritorio\TpvVigoSe\TpvVigo\Tpv.mdf;" & _
"Integrated Security=True;" & _
"Connect Timeout=30;" & _
"User Instance=True"
'Dim nuevobotonProd As New Button
'Creo las variables que definen el area de botones por fila
Dim bxf, contador As Integer
'Creo la variables que contendran las dimensiones de los botones
Dim altoBoton, anchoBoton As Integer
'Creo las variables de los puntos en los cuales empiezo a pintar los botones
Dim x, y As Integer
'-------------------------------------------------------------------------------------------
bxf = 9 'Por ejemplo defino 9 botones por fila
contador = 0
anchoBoton = 54
altoBoton = 87
x = 14
y = 2
'--------------------------------------------------------------------
Dim conlumna As New DataColumn
conlumna.ColumnName.Contains("NombreFamilia")
cmd.Connection = conexion
cmd.CommandText = "select idf, NombreFamilia from FamiliasProducto ORDER BY OrdenFamilia ASC"
adapta.SelectCommand = cmd
adapta.Fill(undataset, "FamiliasProducto")
For i As Integer = 0 To undataset.Tables("FamiliasProducto").Rows.Count - 1
'Si alcanzo el maximo de columnas de la fila a pintar
If contador = bxf Then
'seteo el valor del contador
contador = 0
'doy la coordenada para que inicie otra fila para crear botones
y = y + anchoBoton
x = 10
End If
Dim nuevobotonProd As New Button
nuevobotonProd.BackColor = Color.Khaki
'Agrego esta propiedad para darle el nombre al boton
nuevobotonProd.Name = undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()
nuevobotonProd.Location = New Point(x, y)
nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
nuevobotonProd.Text = undataset.Tables("FamiliasProducto").Rows(i).Item(1).ToString()
Me.Controls.Add(nuevobotonProd)
'Creo 1 evento para todos los botones
AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()).Click, AddressOf btnEvent_Click
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton
Next
accion = 0
End Sub
btnEvent_Click :
Código vb:
Ver originalPrivate Sub btnEvent_Click()
'Identifico el nombre del boton(nombre de la familia seleccionada)
'al que se hizo clic y almaceno en una variable
valor = Me.ActiveControl.Name.ToString
'Mando a listar los productos de la familia,
'Enviandole la familia respectiva
cargar_formulario_Productos(valor)
'mando accion
accion = 1
End Sub