Primero andar. Luego correr.
Buen dia señores, soy nuevo en bisual basic, estoy haciendo mi primer programa un software ganadero para mi papa, lo que quiero es llevar el control de todo el ganado, pero tengo muchos problemas, cree una base de datos, en la cual meto el nuevo ganado y lo guardo en la base de datos, el ganado se definira por, nuevo ganado, paridas, Cargadas, Llevadas, vendidas etc, el problema que tengo es de base de datos o orden,
no se como hacer por ejemplo con paridas, las paridas son las vacas que tuvieron cria, lo que tengo que hacer es registrar la nueva cria, con nombre, numero de registro de la mama, numero de crias que a tenido la mama, y nombre de esas crias, solo que no se como hacer para eso, tener el control del numero de las crias que a tenido y que me muestre sus nombres
ademas tengo problemas con la busqueda, cuando le doy buscar un numero que no existe en la base de datos, luego le doy buscar un numero que existe y no me lo busca se queda en blanco y no se porque ocurre eso, solo pasa cuando ingreso un numero que no existe :S
como les digo soy muy nuevo en programacion, apenas 1 mes jajaja, espero me ayuden gracias el codigo de la busqueda es este
mensaje = InputBox("Ingrese Numero de Ganado")
DataEnvironment1.rsganado.Find "NumeroGAnado='" & Trim(mensaje) & "'"
Primero andar. Luego correr.
La verdad te sale mas facil usar PHP y MySQL para trabajar con base de datos, te lo recomiendo.
Hola,
No creo que sea problemas de programación, más bien lo veo como normalización de la bd, lo que yo haría en ese caso, según lo entendido, sería crear una nueva tabla donde se registren las crias tomando como dato a relacionar el código de la madre, de esta manera te será mucho más fácil crear una consulta y tener control sobre las crias.
Saludos.
Bonedragon "Aprender a pelear, para no pelear"
Necesitas crear una tabla donde iras poniendo a los críos y ahí necesitas tener una columna "ID" lo que identificara a sus padres, es decir, la ID sera una clave foránea la cual indicara a la clave principal en la otra tabla.
En todo caso, antes aprende a manejar bases porque por lo que veo no sabes lo mas básico.
Saludo
Sub-Soul.com
Aqui tienes un ejemplo de la tabla y algunas consultas que necesitas para resolver tu problema:
Tabla:
CREATE TABLE [dbo].[Info](
[id] [int] NOT NULL,
[name] [varchar](150) NOT NULL,
[parent] [int] NULL,
[state] [varchar](50) NULL,
CONSTRAINT [PK_Info] PRIMARY KEY
(
[id] ASC
)
) ON [PRIMARY]
Posibles Datos:
id name parent state
---- ---------------- ---------- ----------
1 Vaca_Mama_1 NULL Parida
2 Vaca_Mama_2 NULL Vendida
3 Cria_1 1 Vendida
4 Cria_2 1 Nueva
5 Cria_3 2 Nueva
6 Cria1_Cria_2 4 Nueva
Consultas:
--Consultar mamás
SELECT * FROM INFO where id in
(SELECT DISTINCT(parent) FROM INFO where parent is not null)
-- Consultar crias
SELECT * FROM INFO where parent is not null
--Por estado
SELECT * FROM INFO where state = 'Vendida'
Luego es utilizar un DataTable en VB y ya.
Salu2.
Última edición por x4v1g; 05-24-2012 a las 05:15 PM
k4i1t
Eso esta mal colega. El necesita 2 tablas. Una donde irán los padres y la otra donde irán los críos. Para saber quien es el padre del crió, necesitara tener la clave principal de la madre como foránea en la tabla de los críos y después para hacer consulta necesitara emparejar las 2 tablas y así obtener el resultado.
Creacion de Tablas:
---------------------------------------------------------------------------------------------------
CREATE TABLE T_Padres(
[id] [int] NOT NULL,
[Nombre] [varchar](150) NOT NULL,
CONSTRAINT pk_Madre PRIMARY KEY (id)
ALTER TABLE T_Padres ADD CONSTRAINT fk_pk_Madre FOREIGN KEY (id) REFERENCES T_Crios(Madre);
---------------------------------------------------------------------------------------------------
CREATE TABLE T_Crios(
[id] [int] NOT NULL,
[Crio] [varchar](150) NOT NULL
[Madre] [varchar](150) NOT NULL,
---------------------------------------------------------------------------------------------------
Consulta:
SELECT COUNT(c.Crio), c.Madre FROM T_Crios c INNER JOIN FROM T_Padres p WHERE c.Madre = p.id GROUP BY c.Madre
Esta función cuenta a todos los críos y agrupa respectivamente con sus padres.
Saludo.
Sub-Soul.com
Hola Fakedo0r, no puedes decir que está mal, solo porque no se adapta a tu manera de pensar.
Aqui tienes el query que hace lo mismo con el ejemplo que coloque:
"Esta función cuenta a todos los críos y agrupa respectivamente con sus padres."
SELECT Name as "Nombre madre", Cantidad as "Nombre hijo"
FROM (
SELECT parent , count (parent) as Cantidad
FROM Info where parent is not null
GROUP BY parent
) Pa INNER JOIN Info Inf
ON Pa.parent = Inf.id
Salu2,
k4i1t
Colega no creo que tenga que ver con mi manera de pensar o con la tuya... Aparte tu mismo te estas contradiciendo... Si vuelves a leer lo que puse ahí arriba (esta vez mas atento), veras que dije 2 tablas y un emparejamiento, justo lo que te faltaba en tu función anterior. Pero, de esta ultima no puedo decir que este mal porque haz hecho exactamente lo que decía ahí arriba. Tu función, se adapta a mi manera de pensar (como dices tu).
Saludo.
Sub-Soul.com
Hola Fakedo0r.
A esto me refiero cuando escribo sobrela manera de pensar:
"Eso esta mal colega. El necesita 2 tablas. Una donde irán los padres y la otra donde irán los críos."
No es verdad que necesariamente necesite dos tablas, como se puede apreciar en el ejemplo que puse.
Salu2.
k4i1t