Está en la página 1de 6

Formulario

de encuestas con controles dinmicos.


Crear encuesta:


Friend conexion As New MySqlConnection
Friend SC As New MySqlCommand
Friend DT As New DataTable
Friend DA As New MySqlDataAdapter
Friend DS As New DataSet

Sub controles(ByVal a As Boolean, ByVal b As Boolean)
txt_pregunta.Enabled = a
txt_cantidad_opciones.Enabled = a
btn_nueva.Enabled = b
btn_guardar.Enabled = a
btn_crear_opciones.Enabled = a
btn_cancelar.Enabled = a
btn_volver.Enabled = b

End Sub

Sub limpiar()
txt_cantidad_opciones.Text = 0
txt_pregunta.Text = 0

End Sub

Sub crear_codigo_encuesta()
Dim VarCodigo As Integer

DS.Tables.Clear()
DT.Rows.Clear()
DT.Columns.Clear()
DS.Clear()
conexion.Open()

SC.Connection = conexion
SC.CommandText = "select max(codigo) as micodigo from tbl_encuestas"
DA.SelectCommand = SC
DA.Fill(DT)
DS.Tables.Add(DT)

If TypeOf (DS.Tables(DT.TableName).Rows(0).Item("micodigo")) Is DBNull Then

txt_codigo.Text = 1
Else
If DS.Tables(DT.TableName).Rows.Count > 0 Then
VarCodigo = DS.Tables(DT.TableName).Rows(0).Item("micodigo")
txt_codigo.Text = VarCodigo + 1
End If
End If
conexion.Close()
End Sub

Sub crear_textbox()
DCP.Controls.Clear()
Dim i As Integer

For i = 1 To CInt(txt_cantidad_opciones.Text)

Dim MiTexBox As TextBox = New TextBox
Dim MiLabel As Label = New Label
Dim Salto As Label = New Label

MiLabel.ID = "lbl_Opcion" & i
MiTexBox.ID = "txt_opcion" & i
Salto.ID = "lbl_salto" & i

DCP.Controls.Add(MiLabel)
DCP.Controls.Add(MiTexBox)
DCP.Controls.Add(Salto)

MiLabel.Text = "Opcion:" & i
MiTexBox.Text = "43"
Salto.Text = "" & "<BR>"

Next
End Sub

Sub guardar_encuesta()
Dim mifecha As Date
Dim mifecha2 As String
Dim sql As String

mifecha = FormatDateTime(Now, DateFormat.ShortDate)
mifecha2 = mifecha.ToString("yyyy-MM-dd")
conexion.Open()
SC.Connection = conexion
sql = "INSERT INTO TBL_ENCUESTAS VALUES(" & (txt_codigo.Text) & ", "
sql = sql & " '" & (txt_pregunta.Text) & "','" & (mifecha2) & "')"
SC.CommandText = sql

DA.SelectCommand = SC
DA.Fill(DT)

conexion.Close()

guardar_alternativas()

controles(False, True)
MsgBox("Datos Ingresados Correctamente")
End Sub


Sub guardar_alternativas()
For i = 1 To CInt(txt_cantidad_opciones.Text)

Dim mitext As New TextBox

mitext = CType(FindControl("txt_opcion" & i), TextBox)
If (Not mitext Is Nothing) Then
MsgBox(mitext.ID & " : " & mitext.Text)

conexion.Open()
SC.Connection = conexion
SC.CommandText = "INSERT INTO TBL_ALTERNATIVAS
(CODIGO_ENCUESTA,OPCION) VALUES(" & (txt_codigo.Text) & ",'" & (mitext.Text) & "')"

DA.SelectCommand = SC
DA.Fill(DT)
conexion.Close()

End If
Next

End Sub

Private Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles form1.Load
conexion.ConnectionString = "Database=bd_encuestas;Data
Source=localhost;User Id=root;Password=aiep"
End Sub

Protected Sub btn_nueva_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles btn_nueva.Click
crear_codigo_encuesta()
controles(True, False)
DCP.Controls.Clear()
End Sub

Protected Sub Guardar_Encuesta(ByVal sender As Object, ByVal e As EventArgs)
Handles btn_guardar.Click
guardar_encuesta()
controles(False, True)
End Sub

Protected Sub btn_crear_opciones_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles btn_crear_opciones.Click
crear_textbox()
End Sub

Protected Sub btn_volver_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles btn_volver.Click
Response.Redirect("default.aspx")
End Sub

Protected Sub btn_cancelar_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles btn_cancelar.Click
limpiar()
DCP.Controls.Clear()
controles(False, True)

End Sub

Ver encuesta:



Friend conexion As New MySqlConnection
Friend SC As New MySqlCommand
Friend DT As New DataTable
Friend DA As New MySqlDataAdapter
Friend DS As New DataSet

Sub ver_total_encuestas()

DS.Tables.Clear()
DT.Rows.Clear()
DT.Columns.Clear()
DS.Clear()
conexion.Open()

SC.Connection = conexion
SC.CommandText = "select count(*) as mitotal from tbl_encuestas"
DA.SelectCommand = SC
DA.Fill(DT)
DS.Tables.Add(DT)

If TypeOf (DS.Tables(DT.TableName).Rows(0).Item("mitotal")) Is DBNull Then
txt_total_encuestas.Text = 0
Else

If DS.Tables(DT.TableName).Rows.Count > 0 Then
txt_total_encuestas.Text =
DS.Tables(DT.TableName).Rows(0).Item("mitotal")
End If

End If
conexion.Close()
End Sub

Sub buscar_encuestas()
Dim sql As String

For i = 0 To CInt(txt_total_encuestas.Text)
DS.Tables.Clear()

DT.Rows.Clear()
DT.Columns.Clear()
DS.Clear()
conexion.Open()

SC.Connection = conexion
sql = "select tbl_encuestas.codigo as micodigo,pregunta_encuesta, opcion
"
sql = sql & " from tbl_encuestas inner join tbl_alternativas "
sql = sql & " on tbl_encuestas.codigo=tbl_alternativas.codigo_encuesta "
sql = sql & " where tbl_encuestas.codigo ='" & (i) & "'"
SC.CommandText = sql
DA.SelectCommand = SC
DA.Fill(DT)
DS.Tables.Add(DT)

If DS.Tables(DT.TableName).Rows.Count > 0 Then

Dim Label_codigo As Label = New Label
Dim Label_Pregunta As Label = New Label
Dim salto1 As Label = New Label

Label_codigo.ID = "lbl_Opcion" & i
Label_Pregunta.ID = "txt_pregunta" & i
salto1.ID = "lbl_salto" & i

dcp.Controls.Add(Label_codigo)
dcp.Controls.Add(Label_Pregunta)
dcp.Controls.Add(salto1)

Label_codigo.Text = "N" &
DS.Tables(DT.TableName).Rows(0).Item("micodigo")
Label_Pregunta.Text =
DS.Tables(DT.TableName).Rows(0).Item("pregunta_encuesta")
salto1.Text = "" & "<BR>"
Label_codigo.BorderStyle = BorderStyle.Outset
Label_Pregunta.Width = 270
Label_Pregunta.BorderStyle = BorderStyle.Outset

For j = 0 To DS.Tables(DT.TableName).Rows.Count - 1

Dim MiTexBox_opcion As TextBox = New TextBox
Dim MiLabel_opcion As Label = New Label
Dim Salto2 As Label = New Label

MiLabel_opcion.ID = "lbl_Opcion" & i & j
MiTexBox_opcion.ID = "txt_opcion" & i & j
Salto2.ID = "lbl_salto" & i & j

dcp.Controls.Add(MiLabel_opcion)
dcp.Controls.Add(MiTexBox_opcion)
dcp.Controls.Add(Salto2)

MiLabel_opcion.Text = "Opcion:" & j + 1
MiTexBox_opcion.Text =
DS.Tables(DT.TableName).Rows(j).Item("opcion")
Salto2.Text = "" & "<BR>"
Next

End If
conexion.Close()
Next
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
conexion.ConnectionString = "Database=bd_encuestas;Data
Source=localhost;User Id=root;Password=aiep"

ver_total_encuestas()
buscar_encuestas()
End Sub

Protected Sub btn_volver_Click(ByVal sender As Object, ByVal e As EventArgs)
Handles btn_volver.Click
Response.Redirect("default.aspx")
End Sub

También podría gustarte