Jump to content
Fórum Script Brasil
  • 0

FOR EACH


Paulo Nunes

Question

Olá Galera to desenvolvendo uma lista de chamada de alunos para uma escola estou tento um probleminha

faço selecr no banco pego todos os alunos cadastrados na tabela de alunos crio um formulário com campos presenca, professor, dia, mes, hora, data, hora

fiz a seguinte função

<!--#include file="conexao.asp" -->

<%

Session.LCID = 1046

txtdia = request("dia")

txtmes = request("mes")

txtano= request("ano")

txtdata = date()

txthora = time()

Set rst = Server.CreateObject("ADODB.Recordset")

RSS = "SELECT * FROM lista"

rst.open RSS, conexao, 3, 3

Dim times(), I

I = 0

For Each txtnome In Request("nome")

Redim Preserve times(I)

times(I) = txtnome

I = I + 1

rst.AddNew

rst("nome") = txtnome

Next

Dim times2(), O

O = 0

For Each txtpresenca In Request("presenca")

Redim Preserve times2(O)

times(O) = txtpresenca

O = O + 1

rst("presenca") = txtpresenca

Next

rst.Update

rst.close

set rst = nothing

Conexao.close

Set conexao = nothing

Response.write"0k"

%>

Esta funcionando só que no campo nome eu salvo todos alunos em ordem mas no campo presenca, professor que nem esta ai no código

ele só salva o utilmo item ou seja aparece assim

Nome Presenca

Paulo Nunes

Pedro Santana

Wilham Silva Gomes P

Alguém poderia me dar um help ai.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Pelo que entendi você vai lendo os nomes e adicionando novos records na sua recordset, depois que adicionou todos os nomes você lê todas as presenças e vai adicionando elas sempre na última posição, porque você não move o registro quando lê presença.

Link to comment
Share on other sites

  • 0

<!--#include file="conexao.asp" -->

<%

Session.LCID = 1046

txtdia = request("dia")

txtmes = request("mes")

txtano= request("ano")

txtdata = date()

txthora = time()

Set rst = Server.CreateObject("ADODB.Recordset")

RSS = "SELECT * FROM lista"

rst.open RSS, conexao, 3, 3

Dim times(), I

I = 0

For Each txtnome In Request("nome")

Redim Preserve times(I)

times(I) = txtnome

I = I + 1

rst.AddNew

rst("nome") = txtnome

Next

Dim times2(), O

O = 0

For Each txtpresenca In Request("presenca")

Redim Preserve times2(O)

times(O) = txtpresenca

O = O + 1

rst("presenca") = txtpresenca

Next

rst.Update

rst.movenext

cont =1

cont = cont + 1

rst.close

set rst = nothing

Conexao.close

Set conexao = nothing

Response.write"0k"

Então adcionei o movenext mais mesmo assim os nomes ele salva todos em sequencia só que a presença ele só salva uma vez.

Link to comment
Share on other sites

  • 0

você ta fazendo algo assim:

pega o nome e adiciona na lista, pega o próximo e adiciona novamente, e faz isso até acabar todos. Depois no final você (com o último registro selecionado) sai adicionando a presença.

Ideal seria você pegar primeiro nome e primeira presença e add os dois, e depois ir para o próximo

Link to comment
Share on other sites

  • 0

Seria isso mesmo como eu poderia receber mais de dois valores em request dentro do For Each

Exemplo

Dim times(), I

I = 0

For Each txtnome In Request("nome")

Redim Preserve times(I)

times(I) = txtnome

I = I + 1

rst.AddNew

rst("nome") = txtnome

rst("presenca") = txtpresenca

Não consegui receber os dois no mesmo array.

Link to comment
Share on other sites

  • 0

Tipo isso (ta com cara de gambizona, mas...)

Dim nomes()
Dim presencas()

i = 0

For Each item In Request("nome")
    Redim Preserve nomes(i)
    nomes(i) = item
    i = i + 0
Next

For Each item In Request("presenca")
    Redim Preserve presencas(i)
    presencas(i) = item
    i = i + 0
Next

For i = 0 To UBound(nomes)
    rst.AddNew
    rst("nome") = nomes(i)
    rst("presenca") = presencas(i)
Next

Link to comment
Share on other sites

  • 0

Meu caramara muito obrigado sem você eu não teria consiguido. É verdade esse código ele somente salva um array por vez procurei na net alguma função desse tipo não achei nada a solução foi criar a minha propria. o Código ficou redondo segue ele concluido caso alguém tenha esse mesmo problema.

<!--#include file="conexao.asp" -->

<%

Session.LCID = 1046

Set rst = Server.CreateObject("ADODB.Recordset")

RSS = "SELECT * FROM lista"

rst.open RSS, conexao, 3, 3

Dim pre()

Dim times()

i = 0

For Each alunos In Request("nome")

Redim Preserve nomes(i)

nomes(i) = alunos

i = i + 1

Next

i = 0

For Each lista In Request("presenca")

Redim Preserve listas(i)

listas(i) = lista

i = i + 1

Next

i = 0

For Each professor In Request("professor")

Redim Preserve professores(i)

professores(i) = professor

i = i + 1

Next

i = 0

For Each disciplina In Request("curso")

Redim Preserve cursos(i)

cursos(i) = disciplina

i = i + 1

Next

i = 0

For Each calendario In Request("dia")

Redim Preserve dias(i)

dias(i) = calendario

i = i + 1

Next

i = 0

For Each calendario_mes In Request("mes")

Redim Preserve meses(i)

meses(i) = calendario_mes

i = i + 1

Next

i = 0

For Each calendario_ano In Request("ano")

Redim Preserve anos(i)

anos(i) = calendario_ano

i = i + 1

Next

i = 0

For Each data_cadastro In Request("data")

Redim Preserve datas(i)

datas(i) = data_cadastro

i = i + 1

Next

i = 0

For Each hora_cadastro In Request("hora")

Redim Preserve horas(i)

horas(i) = hora_cadastro

i = i + 1

Next

For i = 0 To UBound(nomes)

rst.AddNew

rst("nome") = nomes(i)

rst("presenca") = listas(i)

rst("professor") = professores(i)

rst("curso") = cursos(i)

rst("dia") = dias(i)

rst("mes") = meses(i)

rst("ano") = anos(i)

rst("data") = datas(i)

rst("hora") = horas(i)

rst.Update

Next

rst.movenext

cont =1

cont = cont + 1

rst.close

set rst = nothing

Conexao.close

Set conexao = nothing

Response.write"0k"

%>

Um abraço até a proxima.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...