Ir para conteúdo
Fórum Script Brasil
  • 0

Somando Valores Em Bd Acess


ViniciusJau

Pergunta

eu tenho um campo de numero no meu banco de dados do acess

dai eu tenho um formulário que tem o nome da pessoa e um campo de numero

como eu faço pra inserir dados em um formulário do acess que o campo é numero..

inserir o numero eu até consegui ,

eu queria era somar os valores que fossem adicionados posteriormente...

será qu edeu pra entender o que eu quis dizer ?? dry.gif

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

então eu teria que fazer assim por exemplo:

codigo antigo

ComandoSQL = "SELECT * FROM operadora WHERE Central='Apae Jaú'"
inserindo os dados
ComandoSQL = "SELECT SUN FROM operadora WHERE Central='Apae Jaú'"
ComandoSQL = "INSERT INTO operadora (Quantidade_ope, Valor)"

não funciona mad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Uma referencia:

http://www.techonthenet.com/sql/sum.htm

Um exemplo:

SQL = "Select SUM(campo) as total from tabela where campo=valor"

set RS = Conexao.Execute(SQL)

Total: <%=rs("total")%>

Link para o comentário
Compartilhar em outros sites

  • 0

Veja aki uma boa explicação que dei estes dias.

http://scriptbrasil.com.br/forum/index.php...ndpost&p=214249

Link para o comentário
Compartilhar em outros sites

  • 0

vixe boiei grandão.... unsure.gif

vou mostrar meu codigo...

tenho esse arquivo alterar.asp

<html>

<head>

<title>Amar</title>

</head>

<body>

<center><font face="Arial" size="2"><b>Operadoras</b></font></center>

<%

If IsEmpty( Request.Form("submit") ) Then

Set Conexao = Server.CreateObject("ADODB.Connection")

Constr = "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("banco_day.mdb")

Conexao.Open Constr

ComandoSQL = "SELECT * FROM operadora WHERE Central='Apae Jaú'"

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

bd.CursorLocation = 2

bd.CursorType = 0

bd.LockType = 3

bd.Open ComandoSQL, conexao,,, &H0001

If Not bd.EOF Then

  bd.Move Request.QueryString("n")

%>

<form method=post action="<%=Request.ServerVariables("script_name")%>">

<input type=hidden name="ComandoSQL" value="<%=ComandoSQL%>">

<input type=hidden name="Conexao" value="<%=Constr%>">

<table border=0 width="80%" align=center>

  <tr>

    <td align=right valign=top><font face="Arial" size="2">Operadora:</font></td>

    <td align=left valign=top>

      <font face="Arial" size="2">

    <b><%=bd("Operadora")%></b>

    </td>

  </tr>

  <tr>

      <td align=right valign=top><font face="Arial" size="2">Quantidade de Fichas:</font></td>

    <td align=left valign=top>

      <font face="Arial" size="2">

    <input type=text name="Quantidade_ope" value="<%=bd("Quantidade_ope")%>" size=15 maxlength=50 style="{<font-family:Arial; font-size:12}">

    </td>

  </tr>

  <tr>

      <td align=right valign=top><font face="Arial" size="2">Maior Valor de Doa&ccedil;&atilde;o:</font></td>

    <td align=left valign=top>

      <font face="Arial" size="2">

    <input type=text name="Valor" value="<%=bd("Valor")%>" size=15 maxlength=50 style="{<font-family:Arial; font-size:12}">

    </td>

  </tr>

  </font>

</table>

<center>

    <input type=submit name=submit value=Ok style="{<font-family:Arial; font-size:12}">

  </center>

<input type="hidden" name="n" value="<%if Not IsEmpty(Request.QueryString("n"))then : Response.Write Request.QueryString("n") Else : Response.Write "0" : End If%>">

</form>

<center>

<%

If Request.QueryString("n") > 0 then

  Response.Write "<a href=" & Request.ServerVariables("SCRIPT_NAME") & "?n=" & Request.QueryString("n") - 1 & ">&lt;&lt; Operadora Anterior</a>&nbsp;&nbsp;"

End If

  bd.MoveNext

  If Not bd.EOF then

    Response.Write "&nbsp;&nbsp;<a href=" & Request.ServerVariables("SCRIPT_NAME") & "?n=" & Request.QueryString("n") + 1 & ">Próxima Operadora &gt;&gt;</a>"

  End If

Conexao.Close

Set bd = Nothing

Set Conexao = Nothing

%>

</center>

<%

  End If

Else

  If Not IsEmpty(Request.Form("submit")) AND Trim(Request.Form("Operadora")) <> ""  AND Trim(Request.Form("Quantidade_ope")) <> ""  AND Trim(Request.Form("Valor")) <> ""  Then

    Set Conexao = Server.CreateObject("ADODB.Connection")

    Conexao.Open Request.Form("Conexao")

    ComandoSQL = Request.Form("ComandoSQL")

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

    bd.CursorLocation = 2

    bd.CursorType = 0

    bd.LockType = 3

    bd.Open ComandoSQL, Conexao,,, &H0001

    bd.Move Request.Form("n")

    bd("Operadora") = Server.HTMLEncode(Request.Form("Operadora"))

    bd("Quantidade_ope") = Server.HTMLEncode(Request.Form("Quantidade_ope"))

    bd("Valor") = Server.HTMLEncode(Request.Form("Valor"))

    bd.UpdateBatch

    bd.Requery

%>

  <font face="Arial" size="2">

  <center><br>Os dados foram enviados com sucesso !

  <br><a href="enviado.htm"><b>Clique aqui</b></a> para continuar</font></center>

<%

  Else

%>

  <font face="Arial" size="2">

  <center><br>Alguns dados necessários não foram preenchidos corretamente

  <br><a href="javascript:history.go(-1)"><b>Clique aqui</b></a> para voltar</font></center>

<%

  End If

End If

%>

</body>

</html>

eu tentei mudar p/

SQL = "Select SUM(valor, quantidade_ope) as total from operadora where central='Apae Jaú'"

set RS = Conexao.Execute(SQL)

eu tenho uqe colocar dois campos porque são dois campos que pode se alterar..

mais e esse

<%=rs("total")%> 

como eu vou usar ele ??

Link para o comentário
Compartilhar em outros sites

  • 0

você ta dizendo pra selecionar os valores e dar o resultado do calculo em TOTAL (pode ver que você colocou AS TOTAL)

então, para ver o resultado da soma, você usa rs("total")

onde rs é o objeto que executa o sql

Mas...

não sei se o SUM aceita 2 campos..

Link para o comentário
Compartilhar em outros sites

  • 0

Acredito que não seja possivel essa construção:

SQL = "Select SUM(valor, quantidade_ope) as total from operadora where central='Apae Jaú'"
tenta assim:
SQL = "Select SUM(valor) as somavalor, SUM(quantidade_ope) as somaquant from operadora where central='Apae Jaú'"

feito isso voce pode pode realizar as operações que quiser com os os dois campos: Rs.Fields("somavalor") e Rs.Fields("somaquant").

Link para o comentário
Compartilhar em outros sites

  • 0

ahn tá, agora tudo faz sentido !!!! só que acho que vou ter que mudar alguma outra coisa,

porque deu erro nessa linha:

<b><%=bd("Operadora")%></b>

que é a linha uq mostra qual cadastro eu estou alterando.... pelo erro q deu, eu acho que ele não reconhece o campo no meu banco

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/teste/altera_ope1.asp, line 32

Link para o comentário
Compartilhar em outros sites

  • 0

Voce tem que incluir o campo operadora no select:

SQL = "Select Operadora, SUM(valor) as somavalor, SUM(quantidade_ope) as somaquant from operadora where central='Apae Jaú'"

OBS: Nunca misturei um campo normal, com a soma de outros campos, testa ai e v o q dá!!! qualquer coisa pensamos em outra saida.

Editado por cyberalexxx
Link para o comentário
Compartilhar em outros sites

  • 0

eu consegui fazer o script, só que ao invés dele somar ele está alterando os dados, ele exibe a quantidade atual e a pessoa apaga ela e insere a nova quantidade...

só que quando ele altera os valores ele está mudando de todos os registros do banco, como eu posso fazer para ele alterar somente o registro que é exibido pelo codigo <%=bd("nome")%>

estou postando o codigo como ele ficou

<html>
<head>
<title>Amar</title>
</head>
<body>
<center><font face="Arial" size="2"><b>Operadoras</b></font></center>

<%
If IsEmpty( Request.Form("submit") ) Then
Set Conexao = Server.CreateObject("ADODB.Connection")
Constr = "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("banco_day.mdb")
Conexao.Open Constr
ComandoSQL = "SELECT * FROM Operadora WHERE Central='Apae Jaú'"
Set bd = Server.CreateObject("ADODB.Recordset")
bd.CursorLocation = 2
bd.CursorType = 0
bd.LockType = 3
bd.Open ComandoSQL, conexao,,, &H0001

If Not bd.EOF Then
  bd.Move Request.QueryString("n")
%>

<form method=post action="<%=Request.ServerVariables("script_name")%>">
<input type=hidden name="ComandoSQL" value="<%=ComandoSQL%>">
<input type=hidden name="Conexao" value="<%=Constr%>">
<table border=0 width="80%" align=center>
  <tr>
    <td align=right valign=top><font face="Arial" size="2">Operadora:</font></td>
    <td align=left valign=top>
      <font face="Arial" size="2">
   <b></b><%=bd("Nome")%></b>
    </td>
  </tr>
  <tr>
      <td align=right valign=top><font face="Arial" size="2">Quantidade de Fichas:</font></td>
    <td align=left valign=top>
      <font face="Arial" size="2">
    <input type=text name="Quantidade_ope" value="<%=bd("Quantidade_ope")%>" size=15 maxlength=50 style="{<font-family:Arial; font-size:12}">
    </td>
  </tr>
  <tr>
      <td align=right valign=top><font face="Arial" size="2">Maior Valor de Doa&ccedil;&atilde;o:</font></td>
    <td align=left valign=top>
      <font face="Arial" size="2">
    <input type=text name="Valor" value="<%=bd("Valor")%>" size=15 maxlength=50 style="{<font-family:Arial; font-size:12}">
    </td>
  </tr>
  </font>
</table>
<center>
    <input type=submit name=submit value=Ok style="{<font-family:Arial; font-size:12}">
  </center>
<input type="hidden" name="n" value="<%if Not IsEmpty(Request.QueryString("n"))then : Response.Write Request.QueryString("n") Else : Response.Write "0" : End If%>">
</form>
<center>
<%
If Request.QueryString("n") > 0 then
  Response.Write "<a href=" & Request.ServerVariables("SCRIPT_NAME") & "?n=" & Request.QueryString("n") - 1 & ">&lt;&lt; Operadora Anterior</a>&nbsp;&nbsp;"
End If
  bd.MoveNext
  If Not bd.EOF then
    Response.Write "&nbsp;&nbsp;<a href=" & Request.ServerVariables("SCRIPT_NAME") & "?n=" & Request.QueryString("n") + 1 & ">Próxima Operadora &gt;&gt;</a>"
  End If
Conexao.Close
Set bd = Nothing
Set Conexao = Nothing
%>
</center>

<%
  End If
Else
  If Not IsEmpty(Request.Form("submit")) AND Trim(Request.Form("valor")) <> ""  AND Trim(Request.Form("Valor")) <> ""  AND Trim(Request.Form("Quantidade_ope")) <> ""  Then
    set conn = createobject("adodb.connection")
	conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("banco_day.mdb")
	conn.Execute("UPDATE operadora SET valor="&Request.Form("Valor")&",  quantidade_ope="&Request.Form("Quantidade_ope")&" WHERE Central='Apae Jaú'" )
%>

   <font face="Arial" size="2">
   <center><br>Os dados foram enviados com sucesso !

   <br><a href="enviado.htm"><b>Clique aqui</b></a> para continuar</font></center>

<%
  Else
%>

   <font face="Arial" size="2">
   <center><br>Alguns dados necessários não foram preenchidos corretamente

   <br><a href="javascript:history.go(-1)"><b>Clique aqui</b></a> para voltar</font></center>

<%
  End If
End If
%>

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

eu não tenho nehum ID no meu banco... sad.gif

mais o nome que ele exibe , é ele que deveria ser alterado:

<%=bd("Nome")%>

ele está alterando todos os registros que são desse campo

conn.Execute("UPDATE operadora SET valor="&Request.Form("Valor")&",  quantidade_ope="&Request.Form("Quantidade_ope")&" WHERE Central='Apae Jaú'" )

eu tentei colocar <%=bd("Nome")%> ali onde está em vermelho, mais não deu certo, não sei se meu raciocinio estava certo.. masi num funciona tbmmm ohmy.gif

Link para o comentário
Compartilhar em outros sites

  • 0

não na verdade meu banco está mais ou menos assim

Nome            Central              Valor      Quantidade_ope

Maria              Apae Jau              20                15

Renata            Apae SBC            5                  20

Jessica            Apae Jau              33                15

Priscila            Apae Jau              10                25

Fernanda        Apae Rondonia      19                15

Jessica            Apae Rondonia    33                15

Priscila            Apae Jau              10                25

Fernanda        Apae Rondonia      19                15

na verdade meu codigo exibe um nome que está na coluna nome e eu queria alterar só esse campo.... mais qunado eu altero, ele altera o campo de todos os nomes que são da Apae Jaú

Link para o comentário
Compartilhar em outros sites

  • 0

se eu colocar assim por exemplo:

conn.Execute("UPDATE operadora SET valor="&Request.Form("Valor")&",  quantidade_ope="&Request.Form("Quantidade_ope")&" WHERE Nome='Maria'" )

dai sim ele altera só os valores do campos, que está esse nome... dai qunado eu vou pro proximo nome ele altera o nome da maria... indepednete do nome que está sendo exibido.... mad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

então.. você precisa colocar no where a variavel que guarda o nome .. pois é dinamico, não?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...