Generation

generate functionTue, 11 Jul 2023

import pyodbc from datetime import datetime, time # Establecer la cadena de conexión a la base de datos de Access conn_str = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\SISTEMAS\Desktop\REPORTEADORES ACCESS\RONDINERO\Rondinero reporte.accdb;' # Reemplaza "C:\Ruta\hacia\Tu\BaseDeDatos.accdb" con la ruta y nombre de tu base de datos de Access # Establecer la consulta SQL para obtener los registros sql_registros = """ SELECT Codigo, FechaHora, Area FROM RegistrosC WHERE FechaHora > ? AND Area <> 'No checó' ORDER BY FechaHora ASC; """ # Conectar a la base de datos de Access conn = pyodbc.connect(conn_str) # Crear un cursor cursor = conn.cursor() # Ejecutar la consulta SQL para obtener los registros cursor.execute(sql_registros, ('00:00:00',)) # Obtener todos los registros registros = cursor.fetchall() # Obtener la hora actual hora_actual = datetime.now().time() # Verificar el orden de las áreas y agregar áreas faltantes si es necesario areas_ordenadas = ['OFICINAS', 'TALLER MECANICO', 'RECIBA', 'MEZCLADORA', 'BOMBA DIESEL 2', 'BOMBA DIESEL'] ronda = 1 indice = 0 while indice < len(registros): registro = registros[indice] # Obtener la fecha y hora del registro actual fecha_hora_registro = registro[1] # Obtener la hora del registro actual hora_registro = fecha_hora_registro.time() # Verificar si la hora del registro es posterior a las 9:00:00 p.m. if hora_registro > time(21, 0, 0): ronda = 1 # Reiniciar el contador de rondas if registro[2] != areas_ordenadas[(indice % 6)]: registros.insert(indice, ('No checó', None, areas_ordenadas[(indice % 6)])) registro = list(registros[indice]) if registro[1] is None: fecha_hora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) else: fecha_hora = fecha_hora_registro registro[1] = fecha_hora registro.append(ronda) registros[indice] = tuple(registro) indice += 1 if indice % 6 == 0: ronda += 1 # Ordenar los registros por ronda y eliminar espacios vacíos registros_ordenados = [registro for registro in registros if registro[2] != 'No checó'] # Insertar los registros en la tabla "Rondas" si no existen previamente for registro in registros_ordenados: codigo = registro[0] fecha_hora = registro[1] area = registro[2] ronda = registro[3] # Verificar si el registro ya existe en la tabla "Rondas" cursor.execute("SELECT COUNT(*) FROM Rondas WHERE Codigo=? AND FechaHora=? AND Area=? AND Ronda=?", (codigo, fecha_hora, area, ronda)) count = cursor.fetchone()[0] if count == 0: cursor.execute("INSERT INTO Rondas (Codigo, FechaHora, Area, Ronda) VALUES (?, ?, ?, ?)", (codigo, fecha_hora, area, ronda)) # Confirmar los cambios en la base de datos conn.commit() # Cerrar el cursor y la conexión cursor.close() conn.close() tengo este codigo pero me repite la ronda 1 varias veces y me marca este error Traceback (most recent call last): File "C:\Users\SISTEMAS\Desktop\REPORTEADORES ACCESS\PYTHON\access.py", line 23, in <module> data = sheet.get_all_records() File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\worksheet.py", line 529, in get_all_records data = self.get_all_values(value_render_option=value_render_option) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\utils.py", line 705, in wrapper return f(*args, **kwargs) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\worksheet.py", line 484, in get_all_values return self.get_values(**kwargs) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\utils.py", line 705, in wrapper return f(*args, **kwargs) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\worksheet.py", line 449, in get_values vals = fill_gaps(self.get(range_name, **kwargs)) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\utils.py", line 705, in wrapper return f(*args, **kwargs) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\worksheet.py", line 850, in get response = self.spreadsheet.values_get(range_name, params=params) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\spreadsheet.py", line 171, in values_get r = self.client.request("get", url, params=params) File "C:\Users\SISTEMAS\AppData\Local\Programs\Python\Python39-32\lib\site-packages\gspread\client.py", line 93, in request raise APIError(response) gspread.exceptions.APIError: <!DOCTYPE html> <html lang=en> <meta charset=utf-8> <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> <title>Error 502 (Server Error)!!1</title> <style> *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px} </style> <a href=//www.google.com/><span id=logo aria-label=Google></span></a> <p><b>502.</b> <ins>That’s an error.</ins> <p>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds. <ins>That’s all we know.</ins>

def add(a, b): return a + b add(1, 2)

Questions about programming?Chat with your personal AI assistant