Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gotaum

Gerar arquivo CSV

Recommended Posts

Galera do fórum, é o seguinte, eu consegui depois de muito fuçar uma forma de fazer um arquivo CSV, só que surgiu um problema, o código me redireciona para alguns formulários de html que não devem existir.

 

É o seguinte, no código abaixo eu sou redirecionado pelo asp tres vezes para que possa definir quais serão as tabelas, campos e quais os registros devem aparecer no meu CSV, só que eu quero que essas partes não existam....

 

Como assim?!

 

É o seguinte, eu quero que quando eu clicar em um botão chamado salvar, essa página asp chamada de salvar me leve direto à parte onde pergunta se quer salvar ou abrir o CSV.

 

Segue o código:

 

<% Option Explicit %>
<html>
<head>
<title>CSV Export</title>
</head>

<body>
<%

Dim DSNtemp,Conn,RS,action,arrTables,intTable,i,j,x,y,strFields,objFSO,objFile,strLi
ne


DSNtemp="DRIVER={MySQL ODBC 3.51 Driver};SERVER=******;PORT=3306;DATABASE=******;USER=******;PASSWORD=*****;OPTIO
N=3;"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open DSNtemp,"******","******"

action = Request("action")

If action = "" Then
Set RS = Conn.OpenSchema(20) '--> adSchemaTables = 20
RS.Filter = "TABLE_TYPE = 'TABLE'"

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getfields"" method=""POST"">" & VbCrLf
Response.Write "Selecione a(s) tabela(s):<BR>" & VbCrLf
Do While Not RS.EOF
 Response.Write "<input type=""checkbox"" name=""tables"" value=""" & RS(2) & """>" & RS(2) & "<BR>" & VbCrLf
 RS.MoveNext
Loop
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing
End If


If action = "getfields" Then
arrTables = Split(Replace(Request("tables")," ",""), ",")

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Join(arrTables, ",") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""next"" value=""0"">" & VbCrLf
Response.Write "Selecione os campos(s):<BR>" & VbCrLf
For i = LBound(arrTables) to UBound(arrTables)
 Response.Write "Tabela: " & arrTables(i) & "<BR>" & VbCrLf
 Set RS = Conn.Execute("SELECT * FROM " & arrTables(i))
 For j = 0 to RS.Fields.Count-1
  Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""" & RS.Fields(j).Name & """>" & RS.Fields(j).Name & "<BR>" & VbCrLf
 Next
 RS.Close
 Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""*"">Todos os campos<BR>" & VbCrLf
 Response.Write "<BR>"
Next
Response.Write "<input type=""submit"" value=""Next >>"">"
Set RS = Nothing
End If


If action = "getrecords" And Not Request("next") = "end" Then
arrTables = Split(Request("tables"), ",")
intTable = Request("next")
If Instr(Request(arrTables(intTable)),"*") = 0 Then strFields = Request(arrTables(intTable)) Else strFields = "*"

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Request("tables") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""table"" value=""" & arrTables(intTable) & """>" & VbCrLf

For i = LBound(arrTables) to UBound(arrTables)
 Response.Write "<input type=""hidden"" name=""" & arrTables(i) & """ value=""" & Request(arrTables(i)) & """>" & VbCrLf
Next

If intTable >= 1 Then
 For i = 0 to intTable-1
  Response.Write "<input type=""hidden"" name=""" & arrTables(i) & "_rec"" value=""" & Replace(Request(arrTables(i) & "_rec")," ", "") & """>" & VbCrLf
 Next
End If

If intTable+1 <= UBound(arrTables) Then
 Response.Write "<input type=""hidden"" name=""next"" value=""" & intTable+1 & """>" & VbCrLf
Else
 Response.Write "<input type=""hidden"" name=""next"" value=""end"">" & VbCrLf
End If

Response.Write "Tabela: " & arrTables(intTable) & "<BR>" & VbCrLf
Response.Write "Campos: " & strFields & "<BR><BR>" & VbCrLf
Response.Write "Selecione os registro(s):<BR>" & VbCrLf

j = 0

Set RS = Conn.Execute("SELECT " & Request(arrTables(intTable)) & " FROM " & arrTables(intTable))
Do While Not RS.EOF
 If Instr(Request(arrTables(intTable)), ",") > 0 or Request(arrTables(intTable)) = "*" Then
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "," & Left(RS(1),10) & "<BR>" & VbCrLf
 Else
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "<BR>" & VbCrLf
 End If
 RS.MoveNext
 j = j + 1
Loop
Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""ALL"">Todos registros<BR>" & VbCrLf
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing
End If

'Aqui fica o fim, pra onde eu quero que seja redirecionado todas as variáveis.


If action = "getrecords" and Request("next") = "end" Then
Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

For i = LBound(arrTables) to UBound(arrTables)
 Set objFile = objFSO.CreateTextFile(strOutput & Trim(arrTables(i)) & ".csv")
 Set RS = Conn.Execute("SELECT " & Request(arrTables(i)) & " FROM " & arrTables(i))
 strLine = ""

 If Instr(Request(arrTables(i)),"*") = 0 Then
  objFile.WriteLine Replace(Request(arrTables(i)), " ", "")
 Else
  For j = 0 to RS.Fields.Count-1
   strLine = strLine & RS.Fields(j).Name
   If j < RS.Fields.Count-1 Then strLine = strLine & ","
  Next
  objFile.WriteLine strLine
 End If

 If Instr(Request(arrTables(i) & "_rec"), "ALL") <> 0 Then
  Do While Not RS.EOF
   strLine = ""
   For j = 0 to RS.Fields.Count-1
	If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	If j < RS.Fields.Count-1 Then strLine = strLine & ","
   Next
   objFile.WriteLine strLine
   RS.MoveNext
  Loop
 Else
  arrRecs = Split(Replace(Request(arrTables(i) & "_rec")," ",""),",")
  x = 0
  y = 0

  Do While Not RS.EOF
   strLine = ""
   If Not x > UBound(arrRecs) Then
	If y = Int(arrRecs(x)) Then
	 For j = 0 to RS.Fields.Count-1
	  If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	  If j < RS.Fields.Count-1 Then strLine = strLine & ","
	 Next
	 objFile.WriteLine strLine
	 x = x + 1
	End If
   End If
   y = y + 1
   RS.MoveNext
  Loop
 End If

 objFile.Close
 Set objFile = Nothing
Next
Response.Write "Concluido.<BR>" & VbCrLf
For i = LBound(arrTables) to UBound(arrTables)
 Response.redirect "" & Trim(arrTables(i)) & ".csv"
Next
End If
%>
</body>

Pra facilitar eu quero que seja buscado no banco:

select * from newsletter

 

 

Valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No script acima tira os redirecionamentos e na sql manda a sua tabela, e ñ mais o array ...

 

tenta ai ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No script acima tira os redirecionamentos e na sql manda a sua tabela, e ñ mais o array ...

 

tenta ai ...

cara eu não sei nada de programação, ajuda ai?!?!?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu não sei nada de programação, ajuda ai?!?!?!?

Ok ... vou ver o seu código ... quenta ai q já posto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você ñ entende nada de programação assim fica dificil te ajudar ... O código abaixo, sinceramente eu ñ entendi nada, como possivelmente eu tenha um entendimento um pouco mais elevado do q o seu auhuauahuah eu tentei te ajudar da seguinte maneira abaixo ... Testa ai ..

 

<% Option Explicit %>
<html>
<head>
<title>CSV Export</title>
</head>

<body>
<%

Dim DSNtemp,Conn,RS,action,arrTables,intTable,i,j,x,y,strFields,objFSO,objFile,strLi
ne


DSNtemp="DRIVER={MySQL ODBC 3.51 Driver};SERVER=******;PORT=3306;DATABASE=******;USER=******;PASSWORD=*****;OPTIO
N=3;"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open DSNtemp,"******","******"

action = Request("action")

If action = "" Then
Set RS = Conn.OpenSchema(20) '--> adSchemaTables = 20
RS.Filter = "TABLE_TYPE = 'TABLE'"

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getfields"" method=""POST"">" & VbCrLf
Response.Write "Selecione a(s) tabela(s):<BR>" & VbCrLf
Do While Not RS.EOF
Response.Write "<input type=""checkbox"" name=""tables"" value=""" & RS(2) & """>" & RS(2) & "<BR>" & VbCrLf
RS.MoveNext
Loop
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing
End If


If action = "getfields" Then
arrTables = Split(Replace(Request("tables")," ",""), ",")

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Join(arrTables, ",") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""next"" value=""0"">" & VbCrLf
Response.Write "Selecione os campos(s):<BR>" & VbCrLf
For i = LBound(arrTables) to UBound(arrTables)
Response.Write "Tabela: " & arrTables(i) & "<BR>" & VbCrLf
Set RS = Conn.Execute("SELECT * FROM newsletter ")
For j = 0 to RS.Fields.Count-1
  Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""" & RS.Fields(j).Name & """>" & RS.Fields(j).Name & "<BR>" & VbCrLf
Next
RS.Close
Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""*"">Todos os campos<BR>" & VbCrLf
Response.Write "<BR>"
Next
Response.Write "<input type=""submit"" value=""Next >>"">"
Set RS = Nothing
End If


If action = "getrecords" And Not Request("next") = "end" Then
arrTables = Split(Request("tables"), ",")
intTable = Request("next")

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Request("tables") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""table"" value=""" & arrTables(intTable) & """>" & VbCrLf

For i = LBound(arrTables) to UBound(arrTables)
Response.Write "<input type=""hidden"" name=""" & arrTables(i) & """ value=""" & Request(arrTables(i)) & """>" & VbCrLf
Next

If intTable >= 1 Then
For i = 0 to intTable-1
  Response.Write "<input type=""hidden"" name=""" & arrTables(i) & "_rec"" value=""" & Replace(Request(arrTables(i) & "_rec")," ", "") & """>" & VbCrLf
Next
End If

If intTable+1 <= UBound(arrTables) Then
Response.Write "<input type=""hidden"" name=""next"" value=""" & intTable+1 & """>" & VbCrLf
Else
Response.Write "<input type=""hidden"" name=""next"" value=""end"">" & VbCrLf
End If

Response.Write "Tabela: " & arrTables(intTable) & "<BR>" & VbCrLf
Response.Write "Campos: " & strFields & "<BR><BR>" & VbCrLf
Response.Write "Selecione os registro(s):<BR>" & VbCrLf

j = 0

Set RS = Conn.Execute("SELECT * FROM newsletter")
Do While Not RS.EOF
If Instr(Request(arrTables(intTable)), ",") Then
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "," & Left(RS(1),10) & "<BR>" & VbCrLf
Else
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "<BR>" & VbCrLf
End If
RS.MoveNext
j = j + 1
Loop
Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""ALL"">Todos registros<BR>" & VbCrLf
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing


'Aqui fica o fim, pra onde eu quero que seja redirecionado todas as variáveis.


If action = "getrecords" and Request("next") = "end" Then
Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

For i = LBound(arrTables) to UBound(arrTables)
Set objFile = objFSO.CreateTextFile(strOutput & Trim(arrTables(i)) & ".csv")
Set RS = Conn.Execute("SELECT * FROM newsletter ")
strLine = ""


If Instr(Request(arrTables(i) & "_rec"), "ALL") <> 0 Then
  Do While Not RS.EOF
   strLine = ""
   For j = 0 to RS.Fields.Count-1
	If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	If j < RS.Fields.Count-1 Then strLine = strLine & ","
   Next
   objFile.WriteLine strLine
   RS.MoveNext
  Loop
Else
  arrRecs = Split(Replace(Request(arrTables(i) & "_rec")," ",""),",")
  x = 0
  y = 0

  Do While Not RS.EOF
   strLine = ""
   If Not x > UBound(arrRecs) Then
	If y = Int(arrRecs(x)) Then
	 For j = 0 to RS.Fields.Count-1
	  If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	  If j < RS.Fields.Count-1 Then strLine = strLine & ","
	 Next
	 objFile.WriteLine strLine
	 x = x + 1
	End If
   End If
   y = y + 1
   RS.MoveNext
  Loop
End If

objFile.Close
Set objFile = Nothing
Next
Response.Write "Concluido.<BR>" & VbCrLf

End If
%>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara aparece o seguinte erro!

 

Microsoft VBScript compilation error '800a03f6'

 

Expected 'End'

 

/imprime2.asp, line 158

 

valeu muito pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Te falei q ñ entendi esse código ... tenta tirar o último:

 

End If

Caso o erro persista acrescente outro

 

End If
sei lá eu hauhuahuhuah

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta faltando um fechamente que nao necesariamente é um end if pode ser um end select ou um wend ou outro

 

agora nao é so acrescentar e pronto tem que ver onde sua logica exige isso senao para o erro mas nao funciona como quer do mesmo jeito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara esse código eu achei na net....

 

Ele me leva ppra tres escolhas e no fim pra salvar o arquivo, eu só quero que ele me leve na parte de salvar o arquivo.

 

Grato pelo esforço de todos...

 

Dia 16 começo um curso de asp...

 

Ai em vez de perguntar vou responder!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem esse trecho aqui:

If action = "getrecords" and Request("next") = "end" Then
Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

tira o IF dele e deixa assim:

Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

 

Teste!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Microsoft VBScript runtime error '800a01f4'

 

Variable is undefined: 'ne'

 

/imprime2.asp, line 11

 

esse é o erro agora!

 

cara to ficando bolado, passei o dia todo aqui e nada!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao retire o option explict ele é muito util para detectar bobagens do programador

 

Exatamente como neste caso aqui

 

Este ne que nao esta definido, voce nao se perguntou de onde ele está vindo ja que nao usou nenhuma vez uma variavel com este nome?

 

Ele esta logo no inicio de seu codigo

 

Dim DSNtemp,Conn,RS,action,arrTables,intTable,i,j,x,y,strFields,objFSO,objFile,strLi

ne

Deve ter dado um enter e quebrado o nome da variavel strLine

 

Desfaça este erro e veja se corrige pelo menos este erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o novo e antigo erro!!!

 

ele continua esperando um end.

Microsoft VBScript compilation  error '800a03f6'

Expected 'End'

/imprime2.asp, line 15

Compartilhar este post


Link para o post
Compartilhar em outros sites

E o que tem na linha 15?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código está assim até o momento.

 

<% Option Explicit %>
<html>
<head>
<title>Salvar</title>
</head>

<body>
<%

Dim DSNtemp,Conn,RS,action,arrTables,intTable,i,j,x,y,strFields,objFSO,objFile,strLi
ne


DSNtemp="DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql1.prv.f3.k8.com.br;PORT=3306;DATABASE=espiritosanta;USER=esp
iritosanta;PASSWORD=654321;OPTION=3;"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open DSNtemp,"espiritosanta","654321"

action = Request("action")

If action = "" Then
Set RS = Conn.OpenSchema(20) '--> adSchemaTables = 20
RS.Filter = "TABLE_TYPE = 'TABLE'"

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getfields"" method=""POST"">" & VbCrLf
Response.Write "Selecione a(s) tabela(s):<BR>" & VbCrLf
Do While Not RS.EOF
Response.Write "<input type=""checkbox"" name=""tables"" value=""" & RS(2) & """>" & RS(2) & "<BR>" & VbCrLf
RS.MoveNext
Loop
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing
End If


If action = "getfields" Then
arrTables = Split(Replace(Request("tables")," ",""), ",")

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Join(arrTables, ",") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""next"" value=""0"">" & VbCrLf
Response.Write "Selecione os campos(s):<BR>" & VbCrLf
For i = LBound(arrTables) to UBound(arrTables)
Response.Write "Tabela: " & arrTables(i) & "<BR>" & VbCrLf
Set RS = Conn.Execute("SELECT * FROM newsletter ")
For j = 0 to RS.Fields.Count-1
  Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""" & RS.Fields(j).Name & """>" & RS.Fields(j).Name & "<BR>" & VbCrLf
Next
RS.Close
Response.Write "<input type=""checkbox"" name=""" & arrTables(i) & """ value=""*"">Todos os campos<BR>" & VbCrLf
Response.Write "<BR>"
Next
Response.Write "<input type=""submit"" value=""Next >>"">"
Set RS = Nothing
End If


If action = "getrecords" And Not Request("next") = "end" Then
arrTables = Split(Request("tables"), ",")
intTable = Request("next")

Response.Write "<form action=""" & Request.ServerVariables("SCRIPT_NAME") & "?action=getrecords"" method=""POST"">" & VbCrLf
Response.Write "<input type=""hidden"" name=""tables"" value=""" & Request("tables") & """>" & VbCrLf
Response.Write "<input type=""hidden"" name=""table"" value=""" & arrTables(intTable) & """>" & VbCrLf

For i = LBound(arrTables) to UBound(arrTables)
Response.Write "<input type=""hidden"" name=""" & arrTables(i) & """ value=""" & Request(arrTables(i)) & """>" & VbCrLf
Next

If intTable >= 1 Then
For i = 0 to intTable-1
  Response.Write "<input type=""hidden"" name=""" & arrTables(i) & "_rec"" value=""" & Replace(Request(arrTables(i) & "_rec")," ", "") & """>" & VbCrLf
Next
End If

If intTable+1 <= UBound(arrTables) Then
Response.Write "<input type=""hidden"" name=""next"" value=""" & intTable+1 & """>" & VbCrLf
Else
Response.Write "<input type=""hidden"" name=""next"" value=""end"">" & VbCrLf
End If

Response.Write "Tabela: " & arrTables(intTable) & "<BR>" & VbCrLf
Response.Write "Campos: " & strFields & "<BR><BR>" & VbCrLf
Response.Write "Selecione os registro(s):<BR>" & VbCrLf

j = 0

Set RS = Conn.Execute("SELECT * FROM newsletter")
Do While Not RS.EOF
If Instr(Request(arrTables(intTable)), ",") Then
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "," & Left(RS(1),10) & "<BR>" & VbCrLf
Else
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "<BR>" & VbCrLf
End If
RS.MoveNext
j = j + 1
Loop
Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""ALL"">Todos registros<BR>" & VbCrLf
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing


'Aqui fica o fim, pra onde eu quero que seja redirecionado todas as variáveis.



If action = "getrecords" and Request("next") = "end" Then
Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

For i = LBound(arrTables) to UBound(arrTables)
Set objFile = objFSO.CreateTextFile(strOutput & Trim(arrTables(i)) & ".csv")
Set RS = Conn.Execute("SELECT * FROM newsletter ")
strLine = ""


If Instr(Request(arrTables(i) & "_rec"), "ALL") <> 0 Then
  Do While Not RS.EOF
   strLine = ""
   For j = 0 to RS.Fields.Count-1
	If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	If j < RS.Fields.Count-1 Then strLine = strLine & ","
   Next
   objFile.WriteLine strLine
   RS.MoveNext
  Loop
Else
  arrRecs = Split(Replace(Request(arrTables(i) & "_rec")," ",""),",")
  x = 0
  y = 0

  Do While Not RS.EOF
   strLine = ""
   If Not x > UBound(arrRecs) Then
	If y = Int(arrRecs(x)) Then
	 For j = 0 to RS.Fields.Count-1
	  If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	  If j < RS.Fields.Count-1 Then strLine = strLine & ","
	 Next
	 objFile.WriteLine strLine
	 x = x + 1
	End If
   End If
   y = y + 1
   RS.MoveNext
  Loop
End If

objFile.Close
Set objFile = Nothing
Next
Response.Write "Concluido.<BR>" & VbCrLf

End If
%>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está postando quebrando linhas. Seu código está assim também?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é claro

 

Falta voce fechar uma estrutura

 

Agora VOCE, como autor do codigo e entendedor da logica, que deve saber onde fechar

 

Olhe cada IF que abriu e veja se tem o seu END IF correspondente o mesmo para WHILE e WEND ou FOR e NEXT ou DO WHILE e LOOP e SELECT CASE e END SELECT e qualquer outra opção

 

Seu codigo esta muito confuso, eu nao consegui chegar ate o fim da verificacao de cada estrutura

 

Ate onde fui vi um IF la em cima que nao foi fechado

 

Mas ao chegar no fim ta muito confuso tem IF com WHILE com FOR cou outros IFs com FOR tudo um dentro do outro

 

Nao sei o que pretende mas tenho quase que certeza absoluta que esta fazendo da forma mais dificil

 

Mas é melhor voce finalizar do jeito que esta e posteriomente tentar melhorar seu codigo

 

Como disse no inicio deste topico VOCE tem que olhar cada estrutura que abriu e verificar onde deve ser fechada

 

Mas para nao se perder como certamente acontecerá se tentar fazer de cabeça como eu tentei anote cada estrutura aberta e a risque quando fecha-la assim saberá a que falta fechar

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a galera que ta se esforçando pra ajudar.

 

1º Infelizmente o código não é meu... :(

 

2º Eu ainda não sou programador... :( :(

 

3º as linhas não estão quebradas no código não, só aqui pra visualizar...

 

Caro Mário, eu tentei fazer o que disse mas pra quem não conhece a linguagem é muito difícil, se fosse php eu dava um "jeito", sou programador VB, mas esses códigos asp são um inferno... não consigo que ele me obedeça...

 

eu só preciso que esse código me crie um csv e pronto... é simples, mas nenhum tutorial ou ajuda na net tem isso ou algo parecido...

 

E se possível me passa um código pra criar um csv...

 

Até breve galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.